web-dev-qa-db-ja.com

Entity Framework 4.1コードファーストアプローチ:プロパティの長さを定義する方法

タイトルが示すように:

コードファーストアプローチでEntityFramework 4.1に、一部のプロパティ(特に文字列型)の長さを256、nvarchar(max)、または...にするように指示するにはどうすればよいですか。

たとえば、これが私のモデルの場合

public class Book{
   public string Title { get; set; } //should be 256 chars
   public string Description {get;set} //should be nvarchar(max)
}

どのように定義できますか?

前もって感謝します!

24
Savvas Sopiadis

EF4.1 RTWでは、デフォルトの長さはSQL Serverの場合はnvarchar(max)、SQL CEの場合はnvarchar(4000)です。長さを変更するには、StringLengthまたはMaxLengthアノテーションまたは流暢なマッピングHasMaxLengthを使用します。

[StringLength(256)]
public string Title { get; set; }

または

[MaxLength(256)]
public string Title { get; set; }

または

modelBuilder.Entity<Book>()
            .Property(p => p.Title)
            .HasMaxLength(256);
43
Ladislav Mrnka

私のコメントで述べられているように、それは簡単です。
DataAnnotationから[StringLength(1000)]または[MaxLength]を使用するだけです。

3
Savvas Sopiadis