我有一个奇怪的问题,在每个请求上使用事务处理是否会使我的请求变慢,这是值得注意的吗?
using (var transaction = _context.Database.BeginTransaction())
{
this._context.SaveChanges();
transaction.Commit();
}
答案 0 :(得分:-1)
在Entity Framework中, SaveChanges()方法在内部创建一个事务,并将所有INSERT,UPDATE和DELETE操作包装在该事务下。 多次SaveChanges()调用,创建单独的事务,执行CRUD操作,然后提交每个事务
如果您在一次交易中有多个 SaveChanges ,您的代码看起来不错。
如果单个事务中有多个 SaveChanges ,则EF 6和EF Core允许我们使用以下方法通过多个SaveChanges()调用来创建或使用单个事务:
DbContext.Database.BeginTransaction():为基础数据库创建一个新事务,并允许我们使用多个SaveChanges方法调用来提交或回滚对数据库所做的更改。
DbContext.Database.UseTransaction():允许我们传递在上下文对象范围之外创建的现有事务对象。这将允许EF在外部事务对象中执行命令。或者,传入null以清除框架对该事务的了解。