0

当向表中添加新行时,我使用以下 SQL 脚本启用在字段中设置当前时间:

ALTER TABLE [Items] ADD CONSTRAINT DF_Items DEFAULT GETDATE() FOR [CreationDate]

现在我正在使用 Entity Framework 来处理这个表,并向它添加新行。我想要做的是允许该特定列从 SQL Server 本身接收其值,而不必自己提供该值。在 Visual Basic 中将该特定列的值设置为Nothing用 填充该字段DateTime.MinValue,这不是我想要的(顺便说一下,SQL Server 不支持)。

我必须做出哪些改变才能完成这项工作?

4

1 回答 1

5

您必须StoreGeneratedPattern在 EDMX 设计器中(或DatabaseGeneratedOption首先在代码中)设置Identity该日期属性。EF 始终为未填充的属性发送 .NET 默认值,该属性不是存储生成的。将模式设置为Identity将告诉 EF 在插入期间在 DB 中生成值,并且它将重新查询其值。如果您从默认值更改模式,您将无法在应用程序中设置该属性。

于 2012-06-23T22:58:15.767 回答