我必须调用参数为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
的定义。
发布于 2020-05-12 07:46:47
这个问题与Dapper无关,您试图访问根本不存在的枚举成员。
DbType
枚举不包含名为char
或varbinary
的成员。
使用char
代替AnsiStringFixedLength
,使用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);
发布于 2020-05-12 08:03:12
你可以用这个;
db.Execute("Sql Query", new Dapper.DynamicParameters(new Dictionary<string, object>() { { "ColumnName", "ValueObject" } }));
您必须在Enum上使用变量类型,如下所示;
公共枚举TestEnum :字节{ // Values }
https://stackoverflow.com/questions/61746255
复制相似问题