【发布时间】:2021-02-08 19:09:03
【问题描述】:
我有一个原子事务的实现,其中许多上下文在异步 HTTP POST 方法中被更新。
在事务实施之前,我正在异步操作我的上下文
例如(await _context.Foo.AddAsync(trade);await _context.SaveChangesAsync();)
在了解了转换的必要性并看到了许多同步示例之后,我决定同步实现它们:
using (var transaction = _context.Database.BeginTransaction())
{
//_context.Database.Log = Console.WriteLine();
try
{
_context.Foo.Add(foo);
_context.SaveChanges();
_context.TradeItems.AddRange(new List<Bar>{});
_context.SaveChanges();
transaction.Commit();
由于原子性对我来说是一个优先事项,我可以这样做。
但是,我应该改为异步吗? BeginTransaction() 与 BeginTransactionAsync() 的性能影响是什么
【问题讨论】:
-
基本上,与任何异步一样:当后端请求的服务工作(=创建事务)时,等待结果的线程可以做其他工作。跨度>
标签: c# asp.net-core entity-framework-core asp.net-web-api2