Dapper 和 Varbinary(max) 流参数

本文关键字:参数 max Varbinary Dapper | 更新日期: 2023-09-27 18:33:57

>我正在尝试将二进制 blob 存储在数据库表中并从中获取输出。数据存储在MemoryStream对象中。我正在尝试使用查询异步将其保存到 sql Server 2012 表中。调用成功,但没有数据插入到列中。(例如,当我查询回来时,我得到一个0x0条目(。

果然,实际上检查了一条痕迹,我看到 dapper 发送了0x0。内存流有长度,所以我做错了什么还是不支持这种情况?我的查询字符串只是一个简单的插入,并获取 id 和插入时间。

我正在使用以下调用

using(var conn=new SqlConnection(_connstr)){
var dynParams = new DynamicParameters();
dynParams.Add("BinaryBlob",
_memoryStream,DbType.Binary,ParameterDirection.Input,-1);
var res = await conn.QueryAsync<MyResultType>(_queryStr, dynParams);
}

查询插入一行并获取时间戳,但实际上没有插入任何数据。我做错了什么?

Dapper 和 Varbinary(max) 流参数

确保查找到内存流的开头。 流具有位置状态。 另一种方法是在尝试持久化内存流之前将内存流转换为 Byte[]。

例如

_memorystream.Seek(0, SeekOrigin.Begin);