【问题标题】:Ado.net & Entity Framework : creating entitiesAdo.net 和实体框架:创建实体
【发布时间】:2017-04-29 14:37:27
【问题描述】:
我正在创建一个实体图,我对 ID 上的 StoreGeneratedPattern 属性有疑问。我有Identity 和Computed 两个选项,但我不确定何时使用每个选项。我想当它由实体生成时我应该使用Identity,当它是外键时使用Computed,因为它是由另一个身份生成的。我是对的还是相反?谢谢!
【问题讨论】:
标签:
c#
visual-studio
entity-framework
ado.net
【解决方案1】:
如果您只看官方 MSDN documentation for this property,您会看到:
Member name Description
-----------------------------------------------------------------------------
Computed A value is generated on both insert and update.
Identity A value is generated on insert and remains unchanged on update.
None A value indicating that it is not a server generated property.
因此,如果您的 PK 列是 INT IDENTITY,那么很明显 - 使用 Identity 值。
Computed 值应用于数据库表中的计算列,通常在插入时计算并在更新时重新计算。这不适用于外键列!这些只是常规列 - 请不为这些列设置任何StoreGeneratedPattern 值!!