gpt4 book ai didi

entity-framework - 如何在代码中指定 EF byte[] 首先超过 8000 字节?

转载 作者:行者123 更新时间:2023-12-04 12:48:55 31 4
gpt4 key购买 nike

我正在使用 EF 6.1.3。使用代码首先将实体中的 byte[] 属性设置为最大值。 8000 字节。任何让它变得更大(即 MAX)的尝试都失败了。

HasMaxLength(null)(是的,参数是 int?)仍然将其设置为 8000,HasMaxLength(int.MaxValue) 或任何其他大于 8000 的值使得EF 抛出 System.Data.Entity.Core.MetadataException:

Schema specified is not valid. Errors: (0,0) : error 0026: MaxLength'2147483647' is not valid. Length must be between '1' and '8000' for'varbinary' type.

SQL 服务器 13.0.2151 (mssqllocaldb) 允许 varbinary(max):

enter image description here

这个限制对我来说太严格了。试图找到强加它的原因并不能为此提供充分的理由。所以,我的问题是

如何先在 EF 代码中将 byte[] 映射到 varbinary(max)?

PS: 该属性也是“必需的”,但我不确定是否可以将可选属性设置为 varbinary(MAX)。无论如何,我没有测试过这个案例,因为它对我来说没有多大意义。

最佳答案

尽管有多篇文章指出解决方案是添加以下属性

[列(TypeName="图像")]
byte[] 照片{ 得到;放;

我发现正确的方法是添加这个属性

[最大长度]
public byte[] 照片 { 得到;放;

使用 Column(TypeName) 建议,我最终会在 SQLCE 中收到以下错误:

字段Photo必须是字符串或数组类型,最大长度为'4000'

关于entity-framework - 如何在代码中指定 EF byte[] 首先超过 8000 字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41649805/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com