有人知道是否可以用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

从窗体中移除另一个控件中引用的控件时获取设计时通知

无法在 Blazor Server 应用程序中触发 InputRadio 的 onchange 事件

Npgsql Minimum Pool Size 似乎没有被考虑在内

在 Rx 中,处理线程安全是否是消费者(IObserver)的责任?

如何正确使用await using语法?

在 WebApi 中需要 SSL?

单线程单元 - 无法实例化 ActiveX 控件

什么是表达式树,如何使用它们,为什么要使用它们?

整个命名空间的SuppressMessage

实例化具有运行时确定类型的对象

.NET 世界是否有 Maven 替代方案或端口?

C#:内存不足异常

读取方法的属性值

为什么 WCF 中不允许方法重载?

修剪数组中的所有字符串

如何制作通用类型转换函数

使用 XmlSerializer 将空 xml 属性值反序列化为可为空的 int 属性

当它被抛出和捕获时,不要在那个异常处停止调试器

Dictionary.Add 与 Dictionary[key]=value 的区别