所以我的数据库中有一个名为Timestamp
的列,其默认值为GetDate()
。
每当我使用Entity Framework插入记录时,Timestamp
都是null
。
为什么会这样?
答案 0 :(得分:3)
编辑您的EDM,进行以下更改:
Type="datetime"
Nullable="false"
StoreGeneratedPattern ="Computed"
ref:
http://bibby.be/2009/07/entity-framework-sql.html
答案 1 :(得分:2)
尝试将类型更改为datetime2。有关详细信息,请参阅此article。另请尝试使用Calculated storegeneratedpattern
尝试更改为datetime2,然后通过添加Trigger
进行解决 SET NOCOUNT ON;
UPDATE ASBLAH
SET YourFieldChangeTime = getdate()
WHERE YOURId IN(SELECT AS_ID FROM INSERTED)
如果您需要读取此日期的数据,可以在context.SaveChanges()
之后执行此操作context.Refresh(System.Data.Objects.RefreshMode.StoreWins, p);
答案 2 :(得分:1)
实体框架可能正在创建一个包含所有字段的插入语句,null
是Timestamp
的值,因为您没有提供。{/ p>
如果该列允许null
,则将插入该列。如果不允许null
,则会使用默认值,该值将解析为GetDate()
。
您的桌子需要null
吗?