【发布时间】:2013-05-28 15:32:44
【问题描述】:
一个简单的情况,但想不出简单的解决方案。
我的 MSSQL DB 中有一张表(简化版):
tbUsers
[ID] [int] IDENTITY(1,1) NOT NULL,
[FirstName] [nvarchar](25) NOT NULL,
[DateCreated] [datetime2](7) NOT NULL default GETDATE()
我有一个从数据库生成的实体框架模型,它为我创建了一个用户 POCO 类。
我想要实现的是,当像这样使用我的数据库上下文时
db.Users.Add(new User { Name = "Rony" });
db.SaveChanges();
它将创建一行,其中 DateCreated 设置为当前的日期和时间。现在发生的情况是,当创建User 对象时,DateCreated 属性默认为DateTime.MinValue,然后数据库中的行也具有此值。
我猜执行的查询是:
INSERT INTO dbo.tbUsers
([Name]
,[DateCreated])
VALUES
(''
,'0001-01-01 00:00:00.0000000')
但应该是:
INSERT INTO dbo.tbUsers
([Name])
VALUES
('')
我们将不胜感激。
【问题讨论】:
标签: .net sql-server entity-framework