3

TransactionScope在一个模型控制器类中使用一个协调几个较低级别的数据访问类。每个数据访问类都使用自己的 LINQ DataContext,并且由于 的​​魔力TransactionScope,如果存在,它们都参与同一个事务。

在正常情况下,这是完美的,一切正常。但是,我添加了一个活动日志记录类,它可以写入的地方之一是数据库。不幸的是,TransactionScope如果事务回滚,它会自动接收,所有日志条目也会如此。

我已经检查了 的Transaction属性,DataContext它是空的,正如预期的那样,所以我不知道如何告诉它忽略TransactionScope.

4

1 回答 1

3

在您的日志记录类中,将您包装using(new datacontext())成:

using (var s = new TransactionScope(TransactionScopeOption.Suppress)) {

}
于 2013-07-23T19:21:51.977 回答