指定MaxLength时,实体框架使用nvarchar(max)

时间:2015-08-27 13:06:13

标签: c# sql-server entity-framework entity-framework-6

为了限制其长度,我已使用EF流畅的api将文本字段MaxLength指定为4096:

this.Property(p => p.MyText).HasMaxLength(4096).IsRequired();

但由于某些原因,在SQL Server中,该列变为nvarchar (max)

仅用于测试,如果我指定2048以确保SQL Server得到更新

this.Property(p => p.MyText).HasMaxLength(2048).IsRequired();

这样就可以了。

所以我的问题是为什么EF在nvarchar (max)

时设置sql MaxLength(4096)

1 个答案:

答案 0 :(得分:5)

我认为这是SQL Server的限制。 msdn

  

可变长度的Unicode字符串数据。 n定义字符串长度,可以是1到 4,000 的值。