Entity Framework 4.1代码第一种方法:如何定义属性的长度

时间:2011-04-15 14:25:09

标签: mapping ef-code-first entity-framework-4.1

正如标题所暗示的那样:

如何在代码第一种方法中告诉Entity Framework 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)
}

怎么定义?

提前致谢!

3 个答案:

答案 0 :(得分:43)

在EF4.1 RTW中,SQL Server的默认长度为nvarchar(max),SQL CE的默认长度为nvarchar(4000)。要更改长度,请使用StringLengthMaxLength注释或流畅映射HasMaxLength

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

或者

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

或者

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

答案 1 :(得分:3)

正如我的评论所述,这很简单 只需使用[StringLength(1000)]中的[MaxLength]DataAnnotation

答案 2 :(得分:0)

您可以使用以下方式 如果你想要一个最大字符串长度

[StringLength(Int32.MaxValue)]

[MaxLength]

Property(m => m.Title ).IsRequired().HasMaxLength(128);

[MaxLength(256)]