在 EF Core 中使用 IsolationLevel 开始事务

Posted

技术标签:

【中文标题】在 EF Core 中使用 IsolationLevel 开始事务【英文标题】:BeginTransaction with IsolationLevel in EF Core 【发布时间】:2022-01-09 10:40:05 【问题描述】:

我正在尝试重写旧库以使用 EntityFramework Core,但我不知道如何以特定隔离级别开始事务。

以前我可以这样做:

DbContext.Database.BeginTransaction(IsolationLevel.Snapshot);

EntityFramework Core 中的替代实现是什么?

【问题讨论】:

【参考方案1】:

EF Core 代码完全相同。

DbContext.Database.BeginTransaction(IsolationLevel.Snapshot);

唯一的区别是,在 EF Core 中,method with isolation level(与许多其他方法一样)是一个扩展方法,定义在RelationalDatabaseFacadeExtensions 类中,重要的是,位于Microsoft.EntityFrameworkCore.Relational 程序集中。

因此,如果您有 using Microsoft.EntityFrameworkCore; 并且没有看到它,请添加对 Microsoft.EntityFrameworkCore.Relational.dll 程序集/包的引用。

【讨论】:

以上是关于在 EF Core 中使用 IsolationLevel 开始事务的主要内容,如果未能解决你的问题,请参考以下文章

如何在 EF Core 中使用 DbFunction 翻译?

在 EF Core 中使用多个 dbContext

在 EF Core 中使用 IsolationLevel 开始事务

在 ASP.NET Core 中使用 DbContext 注入并行 EF Core 查询

我可以避免在 EF Core 中使用迁移吗?

在.NET Core类库中使用EF Core迁移数据库到SQL Server