首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Dapper中使用Char和VarBinary?

如何在Dapper中使用Char和VarBinary?
EN

Stack Overflow用户
提问于 2020-05-12 07:39:54
回答 2查看 1.3K关注 0票数 3

我必须调用参数为charVarBinary(MAX)的存储过程。我需要使用Dapper从C#代码调用这个存储过程。但是我找不到dapper支持的任何参数。

SP:

代码语言:javascript
运行
复制
ALTER PROCEDURE [dbo].[uspTest]      
 , @Param1   CHAR(1)        
 , @Param2   VARBINARY(MAX)=null

C#:

代码语言:javascript
运行
复制
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

的定义。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-12 07:46:47

这个问题与Dapper无关,您试图访问根本不存在的枚举成员。

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

使用char代替AnsiStringFixedLength,使用Binary代替varbinary

另外,至少在第一个参数中,还应该包括大小:

代码语言:javascript
运行
复制
DynamicParameters parameter = new DynamicParameters();
parameter.Add("@Param1", email.SenderType, DbType.AnsiStringFixedLength, ParameterDirection.Input, 1);
parameter.Add("@Param2", email.AttachedFileStream, DbType.Binary, ParameterDirection.Input);
票数 3
EN

Stack Overflow用户

发布于 2020-05-12 08:03:12

你可以用这个;

代码语言:javascript
运行
复制
db.Execute("Sql Query", new Dapper.DynamicParameters(new Dictionary<string, object>() { { "ColumnName", "ValueObject" } }));

您必须在Enum上使用变量类型,如下所示;

公共枚举TestEnum :字节{ // Values }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61746255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档