EFでチェック制約を追加できるので、CustomerNotesエンティティにブール値の「FollowUpRequired」プロパティがある場合、ユーザーに「FollowUpDate」プロパティに有効な将来の日付を入力するように強制しますか?
17769 次
2 に答える
23
EFは、EFCore3より前のチェック制約をサポートしていません。
つまり、属性をエンティティに適用して、基になるデータベースにチェック制約を作成するための適切なSQLを生成することを期待することはできません。
コードファーストデータ移行(http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx)を使用する場合のこれを回避する1つの方法は次のとおりです。移行を生成し、生成された関数オーバーライドにSql()
行を追加しますUp()
例えば
public override void Up()
{
// Auto generated code here
// ...
// YOUR CUSTOM SQL GOES HERE
Sql("ALTER TABLE foo ADD CONSTRAINT CK_Some_Check CHECK (SomeDate > '20121110 00:00:00.000'");**
}
詳細については、この質問と回答も参照し てください。チェック制約を表現することは可能ですか?
于 2012-11-12T12:32:41.270 に答える