如何在Dapper中使用Char和VarBinary?

问题描述 投票:1回答:2

我必须调用存储过程,其中参数为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不包含char和varbinary的定义

c# dapper dapper-extensions
2个回答
2
投票

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

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

varbinary代替charAnsiStringFixedLength代替varbinary。另外,至少在第一个参数中,还应包括大小:

Binary

0
投票

您可以使用它;

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:字节{//值}

© www.soinside.com 2019 - 2024. All rights reserved.