0

我对实体框架中实体键的分配有非常精确的认识。

当您将变量设置为实体的实体键时,如果您先执行代码或先执行模型,它会将列设置为标识,但是如果我在模型第一类的默认构造函数中将实体键分配为 0,会发生什么英孚做吗?

EF 会注意到它是自动赋值并忽略我在构造函数中设置的默认值吗?

或者我不应该在检索数据时分配实体键?

4

1 回答 1

1

到目前为止,我还没有看到第一种情况,即绝对没有其他方法可以设置EntityKey对象。但我假设您指的不是那个,而是设置一个 key value

当主键由数据库生成时(标识列),几乎不需要设置主键值。如果您希望 EF 插入一个实体,则无需设置主键,而是将其设置EntityStateAdded(直接或间接)。

我可以想到一种设置主键值很有用的场景:使用存根实体。例如,假设您知道必须删除 id 值为 3 的对象 A,但尚未从数据库中获取对象 A。所以没有可以改变状态的对象Deleted。在这种情况下,您可以通过创建仅填充其 Id 值的存根实体 A 来防止与数据库的往返,将其附加到上下文Deleted并保存更改。

于 2013-04-15T21:47:55.490 回答