コードファーストを使用してクラスに文字列を定義すると、生成されたデータベースの列の既定値によってNULLが許可されます。文字列のNullabilityとEntity Frameworkによって作成された列の他のデータ型Code First
public string MyString { get; set; }
は、この列を作成します。
のMyString(データ型はnvarchar(max)は、ヌル)
私は[Required]
属性を使用して、または.IsRequiredを使用して "nullでない" に変更することができます()メソッドをFluent APIに追加しました。
他のデータ型のデフォルトでは、NULLは許可されません。
public int MyInt { get; set; }
public DateTime MyDateTime { get; set; }
public float MyFloat { get; set; }
public decimal MyDecimal { get; set; }
public bool MyBool { get; set; }
は、これらの列を作成します。
ミン(int型、NOT NULL)
MyDateTime(日時、NOT NULL)
MyFloat(nullで、本物ではない)
MyDecimal(DECIMAL(18,2)、NOT NULL)(nullでないビット)
MyBool
Iは流暢APIに.IsOptional()メソッドを使用してヌルを許可するようにこれらを変更することができ。同じことをする属性はありますか?
また、nulls(int ?, DateTime?など)を許可するようにクラス定義内のデータ型を変更して、データベースにNULLを許可する列を作成することもできます。
デフォルトでは文字列にはnullを許可する理由はありますが、他のデータ型では許可されません。