【发布时间】:2012-03-26 22:26:42
【问题描述】:
当使用超过 8000 字节数据的 BLOB 时,需要专门设置 Parameter.SqlDbType = SqlDbType.Image 使其工作(as explained here)。
Dapper 在看到 byte[] 字段时,默认为 SqlDbType.Binary,这意味着对于较大的 blob,插入和更新将失败并出现数据截断错误。
这个问题有没有优雅的解决方案?我能看到的唯一选择是使用 ADO.NET 方法对整个事务进行编码。
【问题讨论】:
-
如果您查看 dapper 源 (code.google.com/p/dapper-dot-net/source/browse/Dapper/…),您可以在函数“LookupDbType”中添加一个特殊情况,返回适当的 SqlDbType。不知道它是否会破坏其他东西。
-
谢谢!我想我会修改静态 SqlMapper 构造函数并修改以下行: typeMap[typeof(byte[])] = DbType.Binary;
-
哦,这很痛苦;不过,我怀疑您可能最好将此记录为针对 dapper 的错误
标签: sql-server-ce blob dapper