我创建了通用添加方法,该方法在给定 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/