2

最初に EF コードを使用して定義した列の最大長を取得したいと思います。挿入される値が最大長を超えないようにする必要があります。

this.Property(t => t.COMPANY_ID)
             .HasMaxLength(30);

助言がありますか?

4

1 に答える 1

1

私があなたの質問を理解した方法では、エンティティのプロパティ (この場合は COMPANY_ID) が特定の最大長 (この場合は 30) を超えないようにする必要があるようです。

そのような手動チェックを実行する代わりに、データ注釈 (System.ComponentModel.DataAnnotations および System.ComponentModel.DataAnnotations.Schema) を使用することを検討できます。特にコードを最初に使用しているためです。このようなもの:

public class MyEntity
{
    [MaxLength(30)]
    public string MyProperty {get; set;}
    [Column(TypeName="Date")]
    public DateTime MyDate {get; set;}
}

最大長以外も設定できます。上記のように、データベースに反映するデータ型を指定できます。プロパティが必須かどうかなどを指定することもできます。EF はこれを自動的に管理し、エンティティがデータ注釈によって設定された基準を満たさない場合は例外を発生させます。MVC スキャフォールディングを使用すると、エンティティに指定した注釈と一致する検証も自動的に生成できます。

于 2013-01-18T13:13:55.400 に答える