gpt4 book ai didi

.net - 通过 Entity Framework 将实体插入到具有默认值列的表中

转载 作者:行者123 更新时间:2023-12-02 02:02:01 25 4
gpt4 key购买 nike

一个简单的情况,却想不出简单的解决办法。
我的 MSSQL 数据库中有一个表(已简化):
tbUsers

[ID] [int] IDENTITY(1,1) NOT NULL,
[FirstName] [nvarchar](25) NOT NULL,
[DateCreated] [datetime2](7) NOT NULL default GETDATE()

我有一个从数据库生成的 Entity Framework 模型,它为我创建了一个用户 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
('')

如能提供帮助,我们将不胜感激。

最佳答案

如果您的数据库负责设置该字段,请将该属性注释为Computed,例如

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]

这也可以在 EF 设计器中对此字段的属性进行设置。

关于.net - 通过 Entity Framework 将实体插入到具有默认值列的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16795962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com