繁体   English   中英

为什么DataAnnotation MaxLength(8192)不起作用?

[英]Why does DataAnnotation MaxLength(8192) not work?

我正在使用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有何经验/建议?

从MSDN,请看大胆的部分: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同义词是二进制变化的。

所以这里实际上有一个限制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM