gpt4 book ai didi

c# - 如何实现此命令以防止与 LINQ to SQL 发生死锁?

转载 作者:太空狗 更新时间:2023-10-29 21:42:03 28 4
gpt4 key购买 nike

我想在我使用 LINQ to SQL 的项目中实现 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED。我的理解是,这将影响全局的所有 select 语句。

我是否将其放入包含上下文对象的 DAL 中?如果是,怎么办?

谢谢!标记

最佳答案

您可以像这样在每个 DataContext/工作单元的基础上执行此操作:

using (var con = new SqlConnection(constr))
{
con.Open();

using (var tran =
new con.BeginTransaction(IsolationLevel.ReadUncommitted))
{
using (var db = new MyDataContext(con))
{
// You need to set the transaction in .NET 3.5 (not in 4.0).
db.Transaction = tran;

// Do your stuff here.

db.SubmitChanges();
}

tran.Commit();
}
}

当然,您可以将连接和事务的创建、提交和处置抽象出来,但这个示例是可行的。

请注意,这不会设置全局隔离级别,只是针对在特定 DataContext 类的上下文中执行的 LINQ 语句。

关于c# - 如何实现此命令以防止与 LINQ to SQL 发生死锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3736544/

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