Как проверить, был ли добавлен элемент Entity в метод Async C # MVC Core - PullRequest
0 голосов
/ 29 декабря 2018

Я пишу свою собственную реализацию IUserStore и IUserPasswordStore, и мне нужно подготовить асинхронный метод CreateAsync, который вернет 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(), но эта реализация не позволяет мне.Если вам нужно больше кода, просто спросите в комментарии, я предоставлю, однако я думаю, что этого достаточно для вопроса.

1 Ответ

0 голосов
/ 29 декабря 2018

SaveChanges() и await SaveChangesAsync(); возвращают целое число, которое является числом затронутых записей, если операция сохранения была выполнена успешно.Вы можете проверить возвращаемое значение и вернуть соответствующий результат.

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

return success
    ? IdentityResult.Success
    : IdentityResult.Failed;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...