我首先使用 EF 4.1 和数据库。
示例表:
CREATE TABLE dbo.Product(
[ID] [int] IDENTITY(1,1) not null,
Title nvarchar(200) not null,
CreateDate datetime not null default(getdate()),
)
当我添加新行时,出现有关 DateTime 类型溢出的异常。
The getdate()
数据库设置无效。
我必须设置storeGeneatePattern
的财产createdate
字段到Computed
.
有没有办法让EF自动生成DateTime
列无需手动设置?
没有 EF 永远不会使用您的数据库默认值。原因是您的实体不可为空DateTime
财产。默认情况下,该属性在 .NET 中分配的默认值为 1.1.0001。 EF 不知道您是否分配了该值或者它是否是默认值,因此它总是显式地将此值传递到数据库。如果您使用可空类型,也会发生同样的情况,但在这种情况下 EF 将显式传递 null。在这两种情况下,都不会应用数据库中的默认值,因为仅当插入命令中未显式传递应用程序中的值时,才会应用该值 - EF 显式传递实体中的所有值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)