2012-05-01 4 views
2

Entity FrameworkのIsRequiredこの= falseを

public virtual string Subject { get; set; } 

をたどり、その

this.Property(t => t.Subject) 
       .IsRequired() 
       .HasMaxLength(255); 

としてマッピングされますが、これは空の文字列の検証を提供していないと私は定義されたエンティティプロパティを持っています。流暢なAPIを使って次の制約を指定できますか?

[Required(AllowEmptyStrings=false)] 
     public virtual string Subject { get; set; } 
+0

また、OnModelCreating内のモデル全体に​​対してAllowEmptyStringsの「グローバル」オプションを設定する方法があるかどうかを知りたい場合は、すべての文字列値を設定する必要はありません。これを行う方法はありますか? – Dave

答えて

3

ありませんあなたがすることはできません許可されていない空の文字列を持つ属性が検証を記述に対し、流暢-APIは、データベースへのマッピングを記述しているので。バリデーションルールのサブセットのみをマッピングに変換できます。

0

あなたはDbContextクラスでOnModelCreatingメソッドをオーバーライドしてみてくださいましたか?

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<Message>().Property(x => x.Subject).IsRequired(); 
    base.OnModelCreating(modelBuilder); 
} 
+0

はい、マッピングがある場所では空文字列をチェックしますが、空文字列はチェックしません –