DPS*_*oni 5 architecture data-access-layer dapper
如果我的DAL使用dapper-dot-net,如何创建交易?
我的c#winform应用程序将在网络中使用,数据将保存到中央sql server.
我的用例需要使用事务.我可以使用dapper来做这个,还是需要使用像NHibernate这样的东西?
此外,如果我使用存储过程,是否存在此框架的任何风险或限制?由于任何可能的限制,我是否需要改变我的方法?
我没有遇到使用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)