我现在有这样的代码:
public async Task<IActionResult> Create(PageVM page)
{
...
await _context.AddAsync(dto);
await _context.SaveChangesAsync();
}
我想知道我是否应该对await
和async
使用Add
和SaveChanges
方法,或者只在一个地方使用它?
答案 0 :(得分:0)
SaveChangues
方法执行EF内部树中的所有更改,在分离事务中异步发送查询,并默认返回实体BBDD的任何变量(自动计数,触发器等...)。
Add
方法仅在EF的内部树中添加实体(或dto)已被添加&#34;。
逻辑上,它只应用于{{1}}用于异步。对于{{1}}需要更多时间来创建任务而你不会优化时间...总是为所有人创建异步方法,这不是一个好方法....
答案 1 :(得分:0)
是的,如果您只能访问异步方法,则应等待它们。如果您可以访问同步通话,您可以考虑D3ivid在他的回答https://stackoverflow.com/a/50891291/8805908中所说的内容。
考虑一下,如果您选择不等待任何方法,则无法确定在引发事件之前添加了该项。当您从此方法返回时,您甚至可以启动更多任务,该方法假定已添加该项目并且已经引发了该事件。