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

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

我已经检查了 TransactionDataContext 属性,正如预期的那样,它为空,所以我不确定如何告诉它忽略 TransactionScope

最佳答案

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

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

}

关于linq - 当存在 TransactionScope 时,我可以阻止 LINQ DataContext 使用事务吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17819103/

10-13 03:18