EFCore在之前的操作完成之前,在此上下文中开始了第二项操作

时间:2019-06-21 16:09:18

标签: c# asp.net-core entity-framework-core

我收到此错误,但是我无法确定真正的原因是什么,因此我无法修复它? “实体框架核心:在上一个操作完成之前,第二个操作是在此上下文上启动的”

上下文

private readonly ApplicationDbContext _context;

public MyController(ApplicationDbContext context) 
{
    _context = context;
}

此处发生错误“ await _context.SaveChangesAsync();”,但是此语句仅执行一次。

        //Find user by Id
        var foundUser = await _context.Users.FindAsync(myUserId);

        //Populate myUserData here
         ....

        //If user not found, create the user
        if (foundUser == null)
        {
            _context.Users.Add(myUserData);
            await _context.SaveChangesAsync(); //<--------ERROR HERE!
        }

1 个答案:

答案 0 :(得分:0)

您正尝试修改foundUser,但由于它是异步的,因此未返回。

更容易解决此问题的方法是使用.Result这样的结果:

if (foundUser.Result == null)

这样,它将等待上一次呼叫的结果