我是否需要同时使用Add和SaveChanges?

时间:2018-06-16 19:06:11

标签: c# asp.net-mvc entity-framework asynchronous

我现在有这样的代码:

public async Task<IActionResult> Create(PageVM page)
{
...
    await _context.AddAsync(dto);
    await _context.SaveChangesAsync();
}

我想知道我是否应该对awaitasync使用AddSaveChanges方法,或者只在一个地方使用它?

2 个答案:

答案 0 :(得分:0)

SaveChangues方法执行EF内部树中的所有更改,在分离事务中异步发送查询,并默认返回实体BBDD的任何变量(自动计数,触发器等...)。 Add方法仅在EF的内部树中添加实体(或dto)已被添加&#34;。

逻辑上,它只应用于{{1}}用于异步。对于{{1}}需要更多时间来创建任务而你不会优化时间...总是为所有人创建异步方法,这不是一个好方法....

答案 1 :(得分:0)

是的,如果您只能访问异步方法,则应等待它们。如果您可以访问同步通话,您可以考虑D3ivid在他的回答https://stackoverflow.com/a/50891291/8805908中所说的内容。

考虑一下,如果您选择不等待任何方法,则无法确定在引发事件之前添加了该项。当您从此方法返回时,您甚至可以启动更多任务,该方法假定已添加该项目并且已经引发了该事件。