我必须调用参数为 char
和 VarBinary(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
枚举不包含名为 char
或 varbinary
的成员。
使用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/