在 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 中使用 IsolationLevel 开始事务