使用Entity Framework Database First
,
为什么在我的任何DbContext
Sets
中发出Create方法会创建set实体的实例,而不会增加其Identity列?
考虑到我首先要构建我想要添加到给定集合的所有实体,并且最后一次,我通过DbContext.SaveChanges()
添加所有实体 - 真正使用{{1}如果没有属性初始化标识列?我只需手动将DbSet.Create()
实例化为DbSet
答案 0 :(得分:5)
增加标识列是没有意义的,因为你还没有SavedChanges而你可能没有。
它实际上做的是创建一个新实例并将其包装在返回的代理对象中。代理对象允许它跟踪何时访问类的属性,这意味着它可以在您设置相关的外键ID属性时更新导航属性(用于延迟加载)。
有关详细信息,请参阅https://msdn.microsoft.com/en-us/data/jj592886.aspx。