c# - 如何在 Dapper 中使用 Char 和 VarBinary?

标签 c# dapper dapper-extensions

我必须调用参数为 charVarBinary(MAX) 的存储过程。我需要使用 Dapper 从 C# 代码调用此存储过程。但是我找不到 dapper 支持的任何参数。

SP:

ALTER PROCEDURE [dbo].[uspTest]      
 , @Param1   CHAR(1)        
 , @Param2   VARBINARY(MAX)=null

C#:

DynamicParameters parameter = new DynamicParameters();
parameter.Add("@Param1", email.SenderType, DbType.char, ParameterDirection.Input);
parameter.Add("@Param2", email.AttachedFileStream, DbType.varbinary, ParameterDirection.Input);

编译错误:

DBType does not contain definition for char and varbinary

最佳答案

此问题与 Dapper 无关,您正在尝试访问根本不存在的枚举成员。

DbType枚举不包含名为 charvarbinary 的成员。

使用AnsiStringFixedLength代替char,使用Binary代替varbinary
此外,至少在第一个参数中,您还应该包括尺寸:

DynamicParameters parameter = new DynamicParameters();
parameter.Add("@Param1", email.SenderType, DbType.AnsiStringFixedLength, ParameterDirection.Input, 1);
parameter.Add("@Param2", email.AttachedFileStream, DbType.Binary, ParameterDirection.Input);

关于c# - 如何在 Dapper 中使用 Char 和 VarBinary?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61746255/

相关文章:

c# - 接口(interface)使用说明(C#视角)

sql-server-ce - Sql CE 多条语句不一致

c# - TinyInt 的 Dapper 转换

c# - 使用 Dapper Extensions,可以在插入 IEnumerable<T> 时检索 ID

C# Regex - 如何忽略变量的转义序列

c# - ElasticSearch NEST searchresponse.hits 数据未填充

c# - 当前使用的 SQLite 数据库?

c# - 将 Dapper 与 Oracle 结合使用

dapper - 不要使用 dapper 扩展更新 Update 方法上的某个属性