Nhibernate ValibatorおよびSchema Exportの質問
-
03-10-2019 - |
質問
Nhibernate Validatorを使用することを学んでおり、流fluent API(Loquasious)です。
整数プロパティまたはNullable Intプロパティ(int?)をNullableではないように設定できないことに気づきました。さて、なぜですか?
データベースでは、整数列にnull値を持つことができます。さらに悪いことに、Schemaexportを使用してDDLを生成すると、整数列はその非潜在性を取り上げません(Nhibernateマッピングで表現しない限り)。
解決
使用してVALDICARSを指定した場合 ValidatorDef<>
, 、 これ は スキーマエクスポートによって検出されると、適切なSQL定義が取得されます。例:
public class InvoiceValidationDef : ValidationDef<Invoice>
{
public InvoiceValidationDef()
{
...
Define(x => x.Description).NotNullable().And.MaxLength(255);
...
}
}
結果
create table Invoices (
...
Description NVARCHAR2(255) not null,
...
)
他のヒント
あなたはすでに答えを与えました。バリデーターは、スキーマエクスポートによってスキャンされません。マッピングを使用する必要があります。
Nhibernate ValidatorはNhibernateの上に座っています。これは、Nhibernateマッピングとカスタムルールに対するエンティティを検証するために使用されます。それらがnullableであるかどうかなどのフィールドプロパティを構成するために、これは、行われた検証だけでなく、生成されたSQLステートメントにも影響するため、Nhibernateマッピングで行われます。
所属していません StackOverflow