我在协调几个较低级别的数据访问类的模型 Controller 类中使用 TransactionScope
。数据访问类每个都使用自己的 LINQ DataContext
,并且由于 TransactionScope
的魔力,如果存在,它们都参与同一个事务。
在正常情况下,这是完美的,一切正常。但是,我添加了一个事件日志记录类,它可以写入的地方之一是数据库。不幸的是,它会自动获取 TransactionScope
,如果事务回滚,所有日志条目也会回滚。
我已经检查了 Transaction
的 DataContext
属性,正如预期的那样,它为空,所以我不确定如何告诉它忽略 TransactionScope
。
最佳答案
在您的日志类中,将您的 using(new datacontext())
包装成:
using (var s = new TransactionScope(TransactionScopeOption.Suppress)) {
}
关于linq - 当存在 TransactionScope 时,我可以阻止 LINQ DataContext 使用事务吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17819103/