我在模型控制器类中使用TransactionScope
来协调几个较低级别的数据访问类。每个数据访问类都使用自己的LINQ DataContext
,并且由于TransactionScope
的魔力,如果存在一个,它们都会参与同一个事务。
在正常情况下,这是完美的,一切正常。但是,我添加了一个活动日志记录类,它可以写入的一个地方是数据库。不幸的是,它会自动获取TransactionScope
,如果事务被回滚,那么所有日志条目也会回滚。
我检查了Transaction
的{{1}}属性,并且按预期为空,所以我不知道如何告诉它忽略DataContext
。
答案 0 :(得分:3)
在您的日志记录类中,将using(new datacontext())
打包到:
using (var s = new TransactionScope(TransactionScopeOption.Suppress)) {
}