如何检查是否在 Async C# MVC Core 方法中添加了实体项

How to check if Entity item was added in Async C# MVC Core method

我正在编写自己的 IUserStore 和 IUserPasswordStore 实现,我需要准备异步方法 CreateAsync,它将 return IdentityResult。到目前为止我有这个:

    public async Task<IdentityResult> CreateAsync(User user)
    {
        Users.Add(user);
        //await Users.AddAsync(user);
        SaveChanges();
        //await SaveChangesAsync(user);
        //alternative version is commented

        if (<What to put there>)
        {
            return IdentityResult.Success;
        }
        return IdentityResult.Failed(new IdentityError { Description = $"Could not insert user {user.Email}." });
    }

我真的不知道我应该在里面放什么if。我只能使用异步方法,所以当我 运行 这个函数时没有任何结果。有小费吗?非常感谢。

通常我只使用 Any() 但这个实现不允许我。如果您需要更多代码,请在评论中提问,我会提供,但我认为这已经足够了。

SaveChanges()await SaveChangesAsync(); return 一个整数,表示保存操作成功完成后受影响的记录数。您可以检查 returned 值和 return 相关结果。

var success = await context.SaveChangesAsync() > 0;

return success
    ? IdentityResult.Success
    : IdentityResult.Failed;