"dapper-dot-net"中的交易

DPS*_*oni 5 architecture data-access-layer dapper

如果我的DAL使用dapper-dot-net,如何创建交易?

我的c#winform应用程序将在网络中使用,数据将保存到中央sql server.

我的用例需要使用事务.我可以使用dapper来做这个,还是需要使用像NHibernate这样的东西?

此外,如果我使用存储过程,是否存在此框架的任何风险或限制?由于任何可能的限制,我是否需要改变我的方法?

mos*_*ers 9

我没有遇到使用sprocs的任何限制,你和短小精悍的风险与sprocs相同的风险

这是一个关于如何使用dapper进行事务的简单示例

using (var connection = Db.GetConnection())
{
     connection.Open();
     IDbTransaction transaction = connection.BeginTransaction();
     try
     {
         var newId= connection.Query<int>(@"Select id from table1 where id=@id", new{id}, transaction).Single();
         connection.Execute(@"INSERT into table1 ...",new {p1, p2}, transaction);
         connection.Execute(@"INSERT into table2 ...",new {p1, p2}, transaction);
         transaction.Commit();
     }
     catch (Exception ex)
     {
         transaction.Rollback();
     }
}
Run Code Online (Sandbox Code Playgroud)