getdate() 不适用于实体框架

本文关键字:实体 框架 适用于 不适用 getdate | 更新日期: 2023-09-27 18:26:01

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

每当我使用实体框架插入记录时,Timestamp null.

为什么会这样呢?

getdate() 不适用于实体框架

编辑 EDM,请进行以下更改:

Type="datetime" 
Nullable="false" 
StoreGeneratedPattern ="Computed"
ref:
http://bibby.be/2009/07/entity-framework-sql.html

尝试将类型更改为日期时间 2。 有关详细信息,请参阅此文章。 还可以尝试使用计算存储生成模式

尝试更改为 datetime2,然后通过添加触发器来解决问题

  SET NOCOUNT ON;
  UPDATE ASBLAH
  SET YourFieldChangeTime = getdate() 
  WHERE YOURId IN(SELECT AS_ID FROM INSERTED)

如果您需要读取此日期的数据,则可以在上下文之后执行此操作。保存更改((

context.Refresh(System.Data.Objects.RefreshMode.StoreWins, p);

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

如果该列允许null,则这就是将插入的内容。如果不允许null,则将使用默认值,该值将解析为 GetDate()

您的餐桌需要允许null吗?