在EF Core中使用隔离级别开始事务

31

我正在尝试重写旧的库以使用EntityFramework Core,但我无法弄清如何使用特定隔离级别开始事务。

以前我能够做到这样:

DbContext.Database.BeginTransaction(IsolationLevel.Snapshot);

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

2个回答

43

EF Core的代码完全相同。

DbContext.Database.BeginTransaction(IsolationLevel.Snapshot);

唯一的区别是在EF Core中,隔离级别方法(以及许多其他方法)是一个扩展方法,在RelationalDatabaseFacadeExtensions类中定义,重要的是,它位于Microsoft.EntityFrameworkCore.Relational程序集中。因此,如果您使用using Microsoft.EntityFrameworkCore;而没有看到它,请添加对Microsoft.EntityFrameworkCore.Relational.dll程序集/包的引用。

3
除了 Ivan Stoev 的回答之外,调用 BeginTransaction 方法时,使用 System.Data.IsolationLevel 而不是 System.Transactions.IsolationLevel 也很重要。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接