一个简单的情况,却想不出简单的解决办法。
我的 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
('')
对实现这一目标的任何帮助将不胜感激。