我有一个对非可空字段有约束的数据库。
让我们看一下:ModifiedDate。
当INSERT命令中没有提供值时,约束默认为getdate()。
我的代码正在使用实体框架,所以我制作了一个入口对象,创建了一个日期时间实例,设置了它的ModifiedDate字段,然后执行了context.SaveChanges(),它运行正常。
但是,如果我创建了对象并且没有设置entry.ModifiedDate,则context.SaveChanges()会在约束设置默认值之前失败
答案 0 :(得分:3)
在您的实体类中,您可以使用以下内容注释ModifiedDate
属性:
[DatabaseGenerated(DatabaseGenerationOption.Computed)]
public DateTime ModifiedDate { get; set; }
来自BOL:DatabaseGenerated
重要的数据库功能是具有计算能力 属性。如果您将Code First类映射到表 包含计算列,您不希望实体框架尝试 更新这些列。但是你确实希望EF从中返回这些值 插入或更新数据后的数据库。你可以使用 DatabaseGenerated注释,用于标记类中的这些属性 以及Computed enum。