C# 使用linq到sql选择的死锁

C# 使用linq到sql选择的死锁,c#,sql,sql-server,linq-to-sql,azure-sql-database,C#,Sql,Sql Server,Linq To Sql,Azure Sql Database,我正在使用LINQtoSQL并运行一个直接sql查询-select语句,该语句使用(XQuery)查询XML列。多个这样的查询并行运行,我得到了死锁异常 select在运行时是否获得某种类型的锁?还有与可序列化隔离级别并行的更新 任何关于如何解决这个问题的建议都会很有帮助。如何在Linq To SQL中指定NOLOCK?我在博客文章中查看了它。一个这样尝试的例子 ProductsNewViewData viewData = new ProductsNewViewData(); using (va

我正在使用LINQtoSQL并运行一个直接sql查询-select语句,该语句使用(XQuery)查询XML列。多个这样的查询并行运行,我得到了死锁异常

select在运行时是否获得某种类型的锁?还有与可序列化隔离级别并行的更新

任何关于如何解决这个问题的建议都会很有帮助。如何在Linq To SQL中指定NOLOCK?

我在博客文章中查看了它。一个这样尝试的例子

ProductsNewViewData viewData = new ProductsNewViewData();
using (var t = new TransactionScope(TransactionScopeOption.Required,
new TransactionOptions { 
    IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted 
}))
{
  viewData.Suppliers = northwind.Suppliers.ToList();
  viewData.Categories = northwind.Categories.ToList();
}

希望对你有帮助。请在他的博客上阅读更多内容。

为什么会出现僵局?SELECT自身无法与其他SELECT死锁。肯定会有更多的事情发生。把它贴在这里,我们可以帮你分析。一旦我们了解了死锁,我们就可以推荐一个解决方案,它几乎总是一个您缺少的必需索引


不要启用脏读(NOLOCK提示或读取未提交隔离级别),这不是正确的方法。并返回不正确的数据。如果需要,可能是必需的,一旦解决了它的问题。

您只是在运行查询吗?是否有代码正在进行更新?仅从查询中出现死锁是非常罕见的抱歉,我将更新问题。还有与可序列化隔离级别并行进行的更新。读取/选择在读取提交的快照隔离级别下运行。我说,因为SQL Server实例是SQL Azure,其默认隔离级别是读取提交的快照