如何在 Dapper 中使用 Char 和 VarBinary?
How to use Char and VarBinary in Dapper?
我必须调用参数为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);
你可以用这个;
db.Execute("Sql Query", new Dapper.DynamicParameters(new Dictionary<string, object>() { { "ColumnName", "ValueObject" } }));
你必须在 Enum 上使用变量类型,像这样;
public enum TestEnum : byte { // 值 }
我必须调用参数为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);
你可以用这个;
db.Execute("Sql Query", new Dapper.DynamicParameters(new Dictionary<string, object>() { { "ColumnName", "ValueObject" } }));
你必须在 Enum 上使用变量类型,像这样;
public enum TestEnum : byte { // 值 }