作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们可以像这样使用 SQL:
SELECT * FROM student WITH(NOLOCK);
如何在不使用 TransactionScope
的情况下使用 LINQ to SQL 实现这一点?
最佳答案
LINQ to SQL 没有执行此操作的任何机制,但您可以创建具有特定隔离级别的事务。看下面的代码:
using (var con = new SqlConnection("constr"))
{
con.Open();
using (var transaction = con.BeginTransaction(
IsolationLevel.ReadUncommitted))
{
using (var context = new SchoolDataContext(con))
{
// HACK: Setting the context.Transaction is
// needed in .NET 3.5 (fixed in .NET 4.0).
context.Transaction = transaction;
var q = from s in context.Students select c;
}
}
}
有时使用这种类型的隔离很有用,即出于性能原因。但请确保不要使用这种类型的数据库隔离来执行任何创建、更新或删除 (CUD) 操作。这当然取决于您的情况,但您的数据可能会处于不一致的状态。
关于.net - 如何在 LINQ to SQL 中使用 WITH(NOLOCK)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2220769/
我是一名优秀的程序员,十分优秀!