如果没有正确初始化标识列,DbSet.Create()的目的是什么?

时间:2015-10-12 10:10:24

标签: entity-framework dbset

使用Entity Framework Database First

为什么在我的任何DbContext Sets中发出Create方法会创建set实体的实例,而不会增加其Identity列?

考虑到我首先要构建我想要添加到给定集合的所有实体,并且最后一次,我通过DbContext.SaveChanges()添加所有实体 - 真正使用{{1}如果没有属性初始化标识列?我只需手动将DbSet.Create()实例化为DbSet

即可

1 个答案:

答案 0 :(得分:5)

增加标识列是没有意义的,因为你还没有SavedChanges而你可能没有。

它实际上做的是创建一个新实例并将其包装在返回的代理对象中。代理对象允许它跟踪何时访问类的属性,这意味着它可以在您设置相关的外键ID属性时更新导航属性(用于延迟加载)。

有关详细信息,请参阅https://msdn.microsoft.com/en-us/data/jj592886.aspx