t_p*_*lus 22 c# sql sql-server entity-framework
我通过EntityFramework 4(EF)将对象插入SQL Server数据库.在接收表上有一列(CreatedDate),其默认值设置为getdate().所以我没有把它提供给EF,假设它的值将被SQL Server默认为getdate().
然而,这不会发生; 而EF返回验证错误n SaveChanges().
您知道这件事有什么原因吗?请告诉我.
非常感谢.
mat*_*ser 14
如果您从不想编辑该值(例如创建日期),您可以使用:
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public virtual DateTime CreatedDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
这将告诉实体框架该值由数据库控制,但仍将获取该值.
请注意,您无法更改该值,因此如果您只是想要一个初始值,它就不是解决方案.
如果您只想要一个默认值但仍然允许编辑它,或者您正在使用Entity Framework 5及更低版本,则必须在代码中设置默认值.
这里有更多关于此的讨论:
如何在Entity Framework中使用DataBase的默认列值?
| 归档时间: |
|
| 查看次数: |
19831 次 |
| 最近记录: |