7

以下の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();
   ...
}

ここで、親テーブルからレコードを削除すると、関連するレコードを子テーブルから削除したいと考えています。Dapper はそれに適合できますか? 以下のように見えます。

 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).......... 

どんな助けでも大歓迎です!

4

1 に答える 1

5

はい、単純に connection.Execute を呼び出すことができます。実行しようとしているような複数のコマンドが既に許可されています。これは、ExecuteQuery が SqlCommand で許可するのと同じです。これは、とにかく Dapper が呼び出しているすべてです。

于 2012-10-05T06:07:43.590 に答える