有人知道是否可以用Dapper将table-valued parameter个数据传递给存储过程吗?

推荐答案

现在(n Dapper 1.26及更高版本)直接支持将表值参数烘焙到Dapper中.对于存储过程,由于数据类型内置于存储过程API中,所以只需提供DataTable:

var data = connection.Query<SomeType>(..., new {
    id=123, name="abc", values = someTable
}, ...);

对于直接命令文本,您还有两个其他选项:

  • 使用助手方法告诉它自定义数据类型:

    var data = connection.Query<SomeType>(..., new {
        id=123, name="abc", values = someTable.AsTableValuedParameter("mytype")
    }, ...);
    
  • 告诉数据表本身要使用哪种自定义数据类型:

    someTable.SetTypeName("mytype");
    var data = connection.Query<SomeType>(..., new {
        id=123, name="abc", values = someTable
    }, ...);        
    

任何一个都可以.

.net相关问答推荐

.NET restore/build在使用组织包的Github Action工作流中调用时获得401

MSBuild:CopyToOutputDirectory不会将本机DLL复制到输出

ASP.NET核心最小API必须以正斜杠开头吗?

如何手动注入依赖注入

C#字符串的GetHashCode()是如何实现的?

Owin Twitter登录-根据验证程序远程证书无效

设置日志(log)文件名以在 Log4j 中包含当前日期

从 switch 块中跳出 foreach 循环

一种消耗(所有字节)BinaryReader 的优雅方式?

C# 是否(或将)包含用于副作用验证的功能?

托管和非托管代码、内存和大小有什么区别?

编译错误:显式实现接口时修饰符 'public' 对此项目无效

C# 方法可以定义为采用的最大参数数是多少?

隐式与显式接口实现

C# 编译为 32/64 位,或任何 cpu?

将 StreamReader 返回到开头

为什么有些对象属性是 UnaryExpression 而有些是 MemberExpression?

C# List<> 按 x 然后 y 排序

为什么 .NET 中没有 Tree 类?

使用 LINQ 搜索树