質問

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マッピングで行われます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top