Entity Framework と Linq クエリを使用して挿入を行う必要があります。エンティティ クラスの場合、データベース テーブルではすべてのフィールドが null 可能ではありません。テーブルに行を作成するためだけに必要な、エンティティ クラスのいくつかの重要なフィールド値を取得しました。しかし、残りのフィールドはエンティティからnull可能になります。これらのフィールド値を指定しない場合、エンティティがそれを null として db テーブルに送信せず、テーブルに新しい行を作成できるように、防止する方法を提案してください。
質問する
554 次
1 に答える
0
NULL
/NOT NULL
は制約です。列で指定すると、その列に何らかの値を指定する必要があるか、行が無効であるNOT NULL
ことを文字通り SQL Server に伝えます。気まぐれでnull不可の列にnullを許可することはできません。これは、制約の目的全体を無効にするためです。
したがって、選択肢は次のとおりです。1) 列を null 可能にするか、2) デフォルト値を指定します。データベース レベルでは、次を実行できます。
ALTER TABLE SomeTable ADD CONSTRAINT DF_SomeColumn DEFAULT [Some Default Value Here] FOR SomeColumn;
Entity Framework は現在、既定値を直接指定することを許可していないため、後でテーブルを変更する必要があります。
または、カスタムのゲッターとセッターを使用して、プロパティのデフォルト値を提供することもできます。ただし、これはデータベースに制約を課さないため、EF が挿入を行っている間のみ機能します。
private DateTime? createdDate;
public DateTime CreatedDate
{
get { return createdDate ?? DateTime.UtcNow; }
set { createdDate = value; }
}
于 2013-06-11T15:30:15.523 に答える