getdate()不使用Entity Framework

时间:2012-02-27 21:24:52

标签: c# entity-framework entity-framework-4

所以我的数据库中有一个名为Timestamp的列,其默认值为GetDate()

每当我使用Entity Framework插入记录时,Timestamp都是null

为什么会这样?

3 个答案:

答案 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)

实体框架可能正在创建一个包含所有字段的插入语句,nullTimestamp的值,因为您没有提供。{/ p>

如果该列允许null,则将插入该列。如果不允许null,则会使用默认值,该值将解析为GetDate()

您的桌子需要null吗?