Dapper可以实现多个删除插入或更新为QueryMultiple吗?

Kev*_*uds 6 dapper

我从Dapper官方文档中看过如下的QueryMultiple,很方便!

     var sql = @"
select * from Customers where CustomerId = @id
select * from Orders where CustomerId = @id
select * from Returns where CustomerId = @id";

using (var multi = connection.QueryMultiple(sql, new {id=selectedId}))
{
   var customer = multi.Read<Customer>().Single();
   var orders = multi.Read<Order>().ToList();
   var returns = multi.Read<Return>().ToList();
   ...
}
Run Code Online (Sandbox Code Playgroud)

现在,当我从Parent-table中删除记录时,我想从Child-table中删除相关记录.小巧玲珑吗?它看起来如下.

 var sql = @"delete from tb_role where roleid=@ID
                            delete from tb_rolepermission where roleid=@ID
                            delete from tb_userrole where roleid=@ID
        ";
        var param = new { ID=id };

 connection.EXECUTEMultiple(sql, param).......... 
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

bka*_*aid 5

是的,您可以简单地调用 connection.Execute 并且它已经允许像您尝试执行的多个命令,就像 ExecuteQuery 在 SqlCommand 上允许的一样,这就是 Dapper 正在调用的所有内容。