我刚开始和Dapper玩耍。到目前为止,我喜欢它。dapper不能与TransactionScope一起工作吗?我注意到,即使我从不调用TransactionScope.Complete,我的更改仍然会提交到数据库中。如果现在不支持TransactionScope,将来有没有计划支持它?如果不是,那么您必须使用传统的事务管理(System.Transactions.Transaction)?
更新:我刚刚在Twitter上和Sam谈过了。应该能行得通。我将在明天早上(在工作中)用详细信息更新它,看看是否有人能弄清楚为什么我的更改仍然被提交到数据库,即使我从未调用complete。
发布于 2011-07-29 22:23:44
这完全是我的错,没有完全理解交易范围。连接不会自动登记到事务作用域中,除非您在事务作用域中打开该连接:
自动登记
using (var scope = new TransactionScope())
{
con.Open();
//update/delete/insert commands here
...
scope.Complete();
}手动登记
con.Open();
using (var scope = new TransactionScope())
{
con.EnlistTransaction(Transaction.Current);
//update/delte/insert statements here
...
scope.Complete();
}详情可在此处找到:Details
https://stackoverflow.com/questions/6860979
复制相似问题