DB FirstでEFを使用しています。私のテーブルは次のようになります。
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」フィールドに DB で生成されたデフォルト値を使用したい場合に、null が許可されていないために例外が発生することです。私はこれをやろうとしています:
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 属性を定義せず、データベースにデフォルト値を生成させるにはどうすればよいですか?