1

NHibernateバリデーターの使い方を学んでいます。FluentAPI(Loquacious)です。

整数プロパティまたはnull許容intプロパティ(int?)をnull許容に設定できないことに気づきました。さて、なぜですか?

データベースでは、整数列はnull値を持つことができます。さらに悪いことに、SchemaExportを使用してDDLを生成すると、整数列はその非null可能性を取得しません(Nhibernateマッピングで表現しない限り)。

4

3 に答える 3

0

あなたはすでに答えを出しました。バリデーターはスキーマエクスポートによってスキャンされません。マッピングを使用する必要があります。

于 2010-09-17T22:09:49.203 に答える
0

を使用してバリデーターを指定すると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,
   ...
)
于 2011-03-16T12:13:22.147 に答える
0

NHibernateValidatorはNHibernateの上にあります。NHibernateマッピングおよびカスタムルールに対してエンティティを検証するために使用されます。null許容かどうかなどのフィールドプロパティを設定する場合、これはNHibernateマッピングで実行されます。これは、実行される検証だけでなく、生成されるSQLステートメントにも影響を与えるためです。

于 2010-09-21T21:13:31.567 に答える