嗨,我有一张桌子顾客。表中的一列是DateCreated
。本专栏是NOT NULL
但默认值是在 db 中为此列定义的。
当我添加新的Customer
在我的代码中使用 EF4。
var customer = new Customer();
customer.CustomerName = "Hello";
customer.Email = "[email protected]";
// Watch out commented out.
//customer.DateCreated = DateTime.Now;
context.AddToCustomers(customer);
context.SaveChanges();
上面的代码生成以下查询。
exec sp_executesql N'insert [dbo].[Customers]([CustomerName],
[Email], [Phone], [DateCreated], [DateUpdated])
values (@0, @1, null, @2, null)
select [CustomerId]
from [dbo].[Customers]
where @@ROWCOUNT > 0 and [CustomerId] = scope_identity()
',N'@0 varchar(100),@1 varchar(100),@2 datetime2(7)
',@0='Hello',@1='[email protected]',@2='0001-01-01 00:00:00'
并抛出以下错误
The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.
The statement has been terminated.
您能告诉我在数据库级别具有默认值的 NOT NULL 列如何不应该具有 EF 生成的值吗?
DB:
DateCreated DATETIME NOT NULL
EF 中的 DateCreated 属性:
-
可空: False
-
吸气剂/吸气剂: public
-
Type:约会时间
-
默认值: None
Thanks.