如何在单个EF保存更改中添加多个相同类型的实体?

时间:2016-04-28 07:04:11

标签: c# entity-framework entity-framework-6

问题

尝试在单个SaveChanges()调用中保存多个数据库实体时,收到以下错误:

  

保存或接受更改失败,因为多个类型的实体' Example.Data.QuestionCategory'具有相同的主键值。确保显式设置的主键值是唯一的。确保在数据库和Entity Framework模型中正确配置了数据库生成的主键。使用实体设计器进行数据库优先/模型优先配置。使用' HasDatabaseGeneratedOption"流利的API或“DatabaseGeneratedAttribute”#39;用于Code First配置。

示例代码

using (var context = new DatabaseEntities())
{
    var category = new QuestionCategory()
    {
        Name = "Test 1"
    };
    context.QuestionCategories.Add(category);
    var child = new QuestionCategory()
    {
        Name = "Test 2",
    };
    context.QuestionCategories.Add(child);
    context.SaveChanges();
}

其他信息

我们正在使用从数据库表生成的实体框架6模型,其中ID列是标识列。

有没有人知道如何解决这个问题,而不是在添加每个项目后专门保存(这只是一个更大的代码块的例子)?

0 个答案:

没有答案