我正在使用Entity Framework Core(7)开发控制台应用程序。
该应用程序分为3个不同的区域,但是数据库是共享的。我创建了3种不同的东西DbContext,现在我需要在它们之间执行事务。所以我需要一个原子操作来保存所有更改或不保存任何内容(回滚)。
我知道在frameowrk 6实体中有一个名为的类,TransactionScope但是我在EF Core中找不到替代品。
使用以下代码:
public static void Main(string[] args)
{
var options = new DbContextOptionsBuilder<DbContext>()
.UseSqlServer(new SqlConnection("Server=x.x.x.x,1433;Database=test;user id=test;password=test;"))
.Options;
var cat = new Cat { Name = "C", Surname = "C", Age = 55 };
var dog = new Dog { Date = DateTime.Now, Code = 120, FriendId = cat.Id };
using (var context1 = new DogsContext(options))
{
using (var transaction = context1.Database.BeginTransaction())
{
try
{
context1.Dogs.Add(dog);
context1.SaveChanges();
using (var context2 = …Run Code Online (Sandbox Code Playgroud)