为什么 EF DataBase First 不使用 getdate()?

2024-05-12

我首先使用 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(使用前将#替换为@)

为什么 EF DataBase First 不使用 getdate()? 的相关文章

随机推荐