我将 EF 与 DB First 一起使用。我的表如下所示:
CREATE TABLE [dbo].[Person](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](50) NOT NULL,
[dob] [datetime] NOT NULL
CONSTRAINT [PK_Person] PRIMARY KEY CLUSTERED )
GO
ALTER TABLE [dbo].[Person]
ADD CONSTRAINT [DF_Person_dob] DEFAULT ('12.12.3000') FOR [dob]
使用 DB First 后,我得到以下部分 Person 类:
using System;
public partial class Person
{
public int id { get; set; }
public string name { get; set; }
public System.DateTime dob { get; set; }
}
我遇到的问题是,当我想为“dob”字段使用数据库生成的默认值时,我得到一个异常,因为不允许使用空值。我正在尝试这样做:
using (var db = new NullTestEntities())
{
var person = db.Person.Create();
person.name = "John Doe";
db.Person.Add(person);
db.SaveChanges();
}
我试过添加
Column(IsDataBaseGenerated=true)
但我无法编译,因为出现错误:
“System.ComponentModel.DataAnnotations.Schema.ColumnAttribute”不包含“IsDatabaseGenerated”的定义
为了不在 C# 代码中定义 dob 属性并让数据库生成默认值,我需要做什么?