c# - 在 db.database.BeginTransaction() 范围下添加时,Entity FrameWork Core 不响应 where() 查询 -Exception(请求超时)

标签 c# entity-framework .net-core transactions mocking

我创建了通用添加方法,该方法在给定 ID 的数据库中进行搜索,然后我对表进行了更改,因此我将其保存到数据库中,但是当我在事务范围内添加它时,它不起作用。抛出的请求超时异常。它适用于 .net 框架但不适用于 .net 核心。我尝试了 Mock<> 但它确实给我一个平台不支持的错误。

   using (Y db = new Y())
        {
            using (var transaction = db.Database.BeginTransaction())
            {
                db.Table.Add(new Table());
                db.SaveChanges();
                public static void add<Y>(Func<T, bool> condition)
                {
                    tableobject = Db.Set<Y>().where(condition).FirstOrDefault();
                    Db.Set<Y>().Add(tableobject);
                    Db.SaveChanges();
                }
                Transaction.Commit();
            }
        }

最佳答案

为了表示真实情况,我对问题做了一些改动。 我找到了解决办法。 这是一种采用参数并创建新实例 MyDbContext 的方法。 我在事务下调用了此方法,如果您使用 .net 核心,则无法创建两个 dbcontext 实例。您只能使用一个 dbcontext。然后我将我的 Dbcontext 类传递给方法,问题就解决了。

关于c# - 在 db.database.BeginTransaction() 范围下添加时,Entity FrameWork Core 不响应 where() 查询 -Exception(请求超时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56155595/

相关文章:

c# - .NET MVC 使用模型属性更新 View

javascript - 取消输入时提交

c# - Assert.IsTrue(false) 正在通过

asp.net-core - asp.net core 中的计划任务的 IHostedService 和 Task 有什么区别?

c# - 当我使用 [HttpGet ("public-profile/{avatarName}")] 时如何在 asp.net-core 中 RedirectToAction

c# - 如何在屏幕外渲染图表(来自 wpf 工具包)控件?

wpf - 我是从 Entity Framework 模型创建模型还是编辑 Entity Framework 模型并在 MVVM 中使用它们?

c# - 为什么在使用 Guid.Parse() 方法时抛出异常?

c# - 转换从 Linq.Dynamic 返回的对象

c# - .NET Core 2.0 RSA PlatformNotSupportedException