我在SQL中有一张表,其中有一个DateTime列,默认值为GetDate()。
在实体框架中,我希望它使用SQL日期时间而不是使用运行控制台应用程序的计算机的本地日期时间(SQL服务器比计算机晚1小时)。
该列也不允许为空,当前它传递了一个日期值1/1/0001,我收到一个错误:
将datetime2数据类型转换为datetime数据类型导致超出范围的值。\r\n语句已终止。
谢谢!
我在SQL中有一张表,其中有一个DateTime列,默认值为GetDate()。
在实体框架中,我希望它使用SQL日期时间而不是使用运行控制台应用程序的计算机的本地日期时间(SQL服务器比计算机晚1小时)。
该列也不允许为空,当前它传递了一个日期值1/1/0001,我收到一个错误:
将datetime2数据类型转换为datetime数据类型导致超出范围的值。\r\n语句已终止。
谢谢!
StoreGeneratedPattern
从 None
更改为 Computed
这会告诉 EF 不要为该列插入值,因此列将获得由数据库生成的默认值。请记住,您将无法传递某些值。
modelBuilder.Entity<EntityName>()
.Property(p => p.PropertyName)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed);
DatabaseGenerated
或StoreGeneratedPattern
(取决于您使用的EF版本) 和Computed
,以找到正确方向的指示。 - Slauma