Entity Framework 4.1 code first approach: how to define length of properties

Savvas Sopiadis picture Savvas Sopiadis · Apr 15, 2011 · Viewed 15.1k times · Source

As the title implies:

how is it possible to tell Entity Framework 4.1 in code first approach, that i do want some properties (in particular of type string) to have a length of 256, or nvarchar(max), or...

So if this is for example my model

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

how could it be defined?

Thanks in advance!

Answer

Ladislav Mrnka picture Ladislav Mrnka · Apr 15, 2011

In EF4.1 RTW default length is nvarchar(max) for SQL Server and nvarchar(4000) for SQL CE. To change the length use either StringLength or MaxLength annotations or fluent mapping HasMaxLength:

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

Or

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

Or

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