我正在使用实体框架处理一对多关系:
我需要从C#对象中插入一堆数据到我的SQL Server数据库中,所以我一直在使用Entity Framework和Code First方法。
在我的示例中,我的产品具有一个类别,但是类别显然可以属于多个产品。
我的产品类看起来像这样。
public class Product
{
public int ProductId { get; set; }
public string Name { get; set; }
public int CategoryId { get; set; }
public Category Category { get; set; }
}
我已经为我的Category类尝试了多种解决方案,无论有没有注释过的行,但是我们可以开始:
public class Category
{
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int CategoryId { get; set; }
public string CategoryName { get; set; }
// public ICollection<Product> Products { get; set; }
}
[在插入具有相同类别的多个产品时,我遇到主键约束冲突-我理解为什么会发生,但是我认为Entity Framework会处理!
我有一长串索引,我使用它们从API获取XML文件(基于该索引)。然后,我基于该XML文件创建一个对象。该方法称为GetProductFromXML:
Foreach(int index in listOfIndexes){
Product product = GetProductFromXML(index);
productContext.Products.Add(product);
}
Context.SaveChanges();
[只要有类别就已经存在的产品,都会从我的类别表中收到对主键约束的违反。
我想得到的显然是EF理解,第二个对象应该使用第一个对象中的类别。
我该怎么办?我发现这是一个简单的操作,可以通过常规查询轻松完成,但是使用Entity Framework,我会全神贯注,并且发疯了!
希望有人会给我逻辑答案!
您正在创建two