gpt4 book ai didi

c# - 使用 Dapper.NET 在一次往返中执行多个 SQL 语句

转载 作者:IT王子 更新时间:2023-10-29 03:48:57 25 4
gpt4 key购买 nike

ADO.NET 中有一个很好的功能,它允许您在一次往返中将多个 SQL 语句发送到数据库并接收所有语句的结果:

var command = new SqlCommand("SELECT count(*) FROM TableA; SELECT count(*) FROM TableB;", connection);

using(var reader = command.ExecuteReader())
{
reader.Read();
resultA = reader.GetInt32(0);
reader.NextResult();
reader.Read();
resultB = reader.GetInt32(0);
}

Dapper.NET有没有类似的功能?

最佳答案

是的,Dapper QueryMultiple 扩展可以做到这一点:

string query = @"SELECT COUNT(*) FROM TABLEA;
SELECT COUNT(*) FROM TABLEB";
using (var multi = connection.QueryMultiple(query, null))
{
int countA = multi.Read<int>().Single();
int countB = multi.Read<int>().Single();
}

根据 Marc Gravell这是在单个批处理中执行多个查询的理想方式。

注意:Dapper 创作者 Sam Saffron已发布detailed explanation with code sample关于使用 QueryMultiple 来完成此任务。

更新:我添加了 Marc 的重要评论

Note: from 1.5-ish (a little earler on the alpha builds) there is aReadSingle() method that may be more convenient and efficient thanRead().Single()

关于c# - 使用 Dapper.NET 在一次往返中执行多个 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19337468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com