我正在使用C#中的Entity Framework 6.1.3开发一个项目,我想设置一些二进制数据的最大限制。
[MaxLength(8192)]
不起作用这是一个错误吗?似乎有一个上限。
[MaxLength(4096)]
这令人惊讶吗?
我是否正确使用DataAnnotations?
//[MaxLength(4096)] <-- this works
[MaxLength(8192)]
public Byte[] MediaData {get; set;}
结果:
MediaData = c.Binary()
预期:
MediaData = c.Binary(maxLength: )
也试过了。
[MaxLength(8192)] // this does not work either
public string Text {get; set;}
我可以手动修复它但是让我感到恼火的是DataAnnotations不能自动运行。您对DataAnnotations的经验/建议是什么?
答案 0 :(得分:2)
,请看粗体部分:D
表示字符串部分:
nvarchar [(n | max)] 可变长度的Unicode字符串数据。 n定义字符串长度,可以是1到4,000 之间的值。 max表示最大存储大小为2 ^ 31-1个字节(2 GB)。存储大小(以字节为单位)是输入数据的实际长度的两倍+ 2个字节。 nvarchar的ISO同义词是国家字符变化和国家字符变化。
和二进制部分:
varbinary [(n | max)] 可变长度的二进制数据。 n可以是1到8,000之间的值。 max表示最大存储大小为2 ^ 31-1个字节。存储大小是输入数据的实际长度+ 2个字节。输入的数据长度可以是0个字节。 varbinary的ANSI SQL同义词是二进制变量。
所以这里实际上有一个限制。