我正在使用 EF 6.1.3。使用代码首先将byte[]
实体中的属性设置为最大值。8000 字节。任何使它更大的尝试,即 MAX,都失败了。
HasMaxLength(null)
(是的,参数是 int 吗?)仍然将其设置为 8000, HasMaxLength(int.MaxValue)
或者任何其他大于 8000 的值都会使 EF 抛出System.Data.Entity.Core.MetadataException
:
指定的架构无效。错误:(0,0):错误 0026:MaxLength '2147483647' 无效。'varbinary' 类型的长度必须介于 '1' 和 '8000' 之间。
SQL server 13.0.2151 (mssqllocaldb) 允许 varbinary(max):
这个限制对我来说似乎太严格了。试图找到一个强加它的原因也不会产生一个很好的理由。所以,我的问题是
如何首先将 byte[] 映射到 EF 代码中的 varbinary(max) ?
PS:该属性也是“必需的”,但我不确定是否可以将可选属性设置为 varbinary(MAX) 。无论如何,我没有测试过这个案例,因为它对我来说没有多大意义。