我认为这很容易,但是......
如何强制EF6使用nvarchar(MAX)
?
我试过了:
[Column(TypeName = "nvarchar(MAX)")]
和
[Column(TypeName = "nvarchar")]
[MaxLength()]
和
modelBuilder.Entity<Date>().Property(o => o.test).HasColumnType("nvarchar(MAX)");
我正在使用EF6.2.0和SQL2014 Express
答案 0 :(得分:2)
如果未指定长度,则EF Code First默认为nvarchar(max),因此如果指定Name列:
public string Name { get; set; }
您将获得一个nvarchar(max)列。
如果您需要指定长度,比如100个字符,那么您可以在代码中指定列:
[StringLength(50)]
public string Name { get; set; }
如果你需要指定varchar而不是nvarchar,你可以使用它:
[Column(TypeName = "VARCHAR")]
[StringLength(50)]
public string Name { get; set; }
请参阅Code First Conventions,Code First Data Annotations和Column Annotations
答案 1 :(得分:1)
除了可以在任何地方键入内容之外,您还可以默认将其设置为所需的长度。 在您的 dbcontext 类
中覆盖函数 OnModelCreatingop_LogicalOr