Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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!

like image 820
Savvas Sopiadis Avatar asked Apr 15 '11 14:04

Savvas Sopiadis


2 Answers

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);
like image 90
Ladislav Mrnka Avatar answered Nov 04 '22 07:11

Ladislav Mrnka


As is stated in my comment, it's simple.
Just use [StringLength(1000)] or [MaxLength] from DataAnnotation.

like image 33
Savvas Sopiadis Avatar answered Nov 04 '22 08:11

Savvas Sopiadis