我必须调用存储过程,其中参数为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不包含char和varbinary的定义
此问题与Dapper无关,您正在尝试访问根本不存在的枚举成员。
DbType
枚举不包含名为DbType
或char
的成员。
varbinary
代替char
,AnsiStringFixedLength
代替varbinary
。另外,至少在第一个参数中,还应包括大小:
Binary
您可以使用它;
DynamicParameters parameter = new DynamicParameters();
parameter.Add("@Param1", email.SenderType, DbType.AnsiStringFixedLength, ParameterDirection.Input, 1);
parameter.Add("@Param2", email.AttachedFileStream, DbType.Binary, ParameterDirection.Input);
您必须像这样在Enum上使用变量类型;
公共枚举TestEnum:字节{//值}