实体框架:一对多?

问题描述 投票:-1回答:1

我正在使用实体框架处理一对多关系:

我需要从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,我会全神贯注,并且发疯了!

希望有人会给我逻辑答案!

c# frameworks entity
1个回答
1
投票

您正在创建two

© www.soinside.com 2019 - 2024. All rights reserved.