Sco*_*ord 4 entity-framework data-annotations entity-framework-4.1
在我们的数据库中,每个表都有两个DateTime列,CreatedOn和ModifiedOn,通过SQL Server中的触发器设置.在INSERT上设置CreatedOn,在INSERT和UPDATE上设置ModifiedOn.
我正在尝试使用Entity Framework 4.1. 我该如何注释/配置这两个属性?
我认为它涉及注释[DatabaseGenerated(DatabaseGeneratedOption.Computed)],但是我应该为两者使用该注释,还是应该[DatabaseGenerated(DatabaseGeneratedOption.Identity)]在CreatedOn字段上设置?
根据MSDN身份只是暗示The database generates a value when a row is inserted.,这似乎是真的.
另外,我应该使用[Timestamp]吗?
使用Identity了CreatedOn和Computed为ModifiedOn.Identity表示仅在插入期间设置值并将其返回给应用程序.Computed在每次修改(包括插入)期间设置,并在每次执行插入或更新后将值返回给应用程序.
请注意,这些属性都不能在应用程序中设置.计算列也不能是主键或外键的一部分(不是你的情况).
这仅适用于现有数据库.使用代码优先Computed时,只能为timestamp或设置rowversion.
Timestamp用于乐观并发.如果将列标记为时间戳,则每个更新都将包含条件WHERE timestampColum = @lastKnownValue.仅当最后已知值与当前值相同时,它才会更新记录.如果值不同,您将获得异常.它通常与timestampSQL类型一起使用.使用它datatime需要一些测试.SQL数据时间的值与.NET中的值不同.
| 归档时间: |
|
| 查看次数: |
1702 次 |
| 最近记录: |