【发布时间】:2018-09-26 10:34:25
【问题描述】:
我正在尝试为某些条目手动设置 Id。
我有一个带有标识字段的客户类
modelBuilder.Entity<Customer>().Property(f => f.Id).HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity);
在插入部分我有
using (var transaction = ctx.Database.BeginTransaction())
{
ctx.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[Customers] ON");
ctx.Customers.AddRange(customersList);
ctx.SaveChanges();
ctx.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[Customers] OFF");
transaction.Commit();
}
但我仍然遇到异常
必须为表中的标识列指定显式值 当 IDENTITY_INSERT 设置为 ON 或当 复制用户正在插入 NOT FOR REPLICATION 身份 列。
在我的异常的 StateEntries 中,我可以看到存储在另一个表(如“联系人”)中的所有字段似乎都是原因
customer.Contacts = new List<Contact> {new Contact {Name = "Test", … }}
我怎样才能让它工作?
【问题讨论】:
标签: entity-framework entity-framework-6