- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 .NET Core 项目中,我使用 EntityFramework,并且在我的类存储库中注入(inject)了一个 DbContext (shopContext)。我有下一个查询:
var res = shopContext.Orders.Where(x => x.Status == 1).Sum(p => p.Total);
偶尔,Orders 表正在做维护任务,表被锁定了。对于此查询,我等不及维护任务了,我需要使用事务中的 IsolationLevel.ReadUncommited
选项访问表:
using (var transaction = mutuaContext.Database.BeginTransaction(IsolationLevel.ReadUncommitted))
{
var res = shopContext.Orders.Where(x => x.Status == 1).Sum(p => p.Total);
}
问题是我只希望上下文在这些查询中使用此 IsolationLevel 配置执行查询,但下一个查询继续执行,尽管表尚未锁定。
为什么以下查询不等待表解锁?
我的代码示例:
using (var transaction = mutuaContext.Database.BeginTransaction(IsolationLevel.ReadUncommitted))
{
var res = shopContext.Orders.Where(x => x.Status == 1).Sum(p => p.Total); // this code would be executed
}
var total = shopContext.Orders.Where(x => x.Status == 0).Sum(p => p.Total); // this code would NOT be executed but is executed
我不明白上下文如何获取事务配置。我希望有人向我解释一下。
我尝试在第一次查询后调用 transaction.Commit()
,但仍然无法正常工作。
最佳答案
使用
yourContext.Database.BeginTransaction(IsolationLevel.ReadUncommitted)
// your normal queries via yourContext goes here
// do not forget to end the transaction
关于c# - 仅对 DbContext 中的一个查询使用选项 IsolationLevel.ReadUncommited,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58100472/
我试图通过 Entity v.4.0.30319 围绕我对存储过程的调用包装一个 TransactionScope。我一直遇到以下异常: Transactions with IsolationLeve
我正在开发一个应用程序,该应用程序应该在收到 PayPal 即时付款通知时创建产品(如运输保险单)。不幸的是,PayPal 有时会发送重复的通知。此外,还有另一个第三方在从 PayPal 获取更新时同
当我在数据库中保存数据时,我使用了将 IsolationLevel 设置为 Serializable 的 TransactionScope。 TransactionOptions options =
在我们的 Azure 数据库中,存在很多死锁。我们尝试将 TransactionScope 类的隔离级别更改为已提交读和可串行化,但死锁图一直显示隔离级别为已提交读 (2)。我们假设它继续使用已提交读
我想在我的项目中使用TransactionScope。我读到它,发现它在数据库中创建了一个隐式事务。我想知道 TransactionScope 是否锁定它操作的表? 例如在此代码中: using (E
我是构建基于 ADO.NET 的网站的团队的一员。有时,我们有多个开发人员和一个自动化测试工具同时工作数据库的开发副本。 我们使用快照隔离级别,据我所知,它使用乐观并发:它不是锁定,而是希望最好的结果
我有一个进程启动事务,将记录插入 Table1,然后调用长时间运行的 Web 服务(最多 30 秒)。如果 Web 服务调用失败,则插入回滚(这是我们想要的)。这是插入的示例(实际上是对多个表的多次插
这MSDN article指出: An isolation level has connection-wide scope, and once set for a connection with th
在 .NET Core 项目中,我使用 EntityFramework,并且在我的类存储库中注入(inject)了一个 DbContext (shopContext)。我有下一个查询: var res
我正在为我的下一个新应用评估 EF。 如何全局更改应用程序中所有 EF 事务的 IsolationLevel?例如:假设我想使用“读取已提交快照”。 虽然当我明确需要 TransactionScope
以下代码在应用程序“使用”为“低”时运行,插入正在进行。 一旦我的使用率很高,我就会收到错误 Transactions with IsolationLevel Snapshot cannot be p
我正在尝试在域级别使用 TransactionScope,因此我可以跨(可能)多个存储库操作数据,但将所有这些保存在同一事务中。 我有以下保存方法: public void Save(MyEntity
我尝试将消息推送到 Azure 服务总线上的主题,但是当我这样做时,出现以下异常: System.InvalidOperationException was unhandled by user cod
在我的 .NET 3.5 项目中,我创建了一个名为 conn 的 OracleConnection 对象。 然后我创建一个交易对象如下: using (OracleTransaction trans
我们有一位客户在使用我们的数据库应用程序时遇到了一些阻塞问题。我们要求他们运行 Blocked Process Report 跟踪,他们给我们的跟踪显示在 SELECT 和 UPDATE 操作之间发生
您好,当调用代码有待处理事务时,我无法从数据库中读取数据。像这样: f1() { DbTransaction t = Connection1.BeginTransaction(IsolationLev
我有一些数据要插入到 2 个数据库(1 个 MSSQL Server,2 个 POSTGRY)中。如果在两个数据库中都插入了记录,那么都应该提交,否则都应该回滚。 任何人都可以帮助我知道我必须在我的
我有多个应用程序通过多个事务访问一个表,我希望这些多个应用程序/事务能够让执行该事务的应用程序相应地插入每个主键/身份。出于某种原因,我不能使用 SCOPE_IDENTITY,这就是为什么我最后选择使
我只是想知道在创建 System.Transactions 时,使用 Serializable 作为默认隔离级别的一个很好的理由是什么? TransactionScope,因为我想不出任何(而且你似乎
更改数据库事务中的隔离级别是可以的,包括将一个事务加入到已经运行的事务中的情况。从现在开始,您只需更改处理锁的方式即可。使用 SQL Server,这运行没有问题: begin transaction
我是一名优秀的程序员,十分优秀!