gpt4 book ai didi

linq - 当存在 TransactionScope 时,我可以阻止 LINQ DataContext 使用事务吗?

转载 作者:行者123 更新时间:2023-12-02 00:06:49 24 4
gpt4 key购买 nike

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

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

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

最佳答案

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

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

}

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com