Разница между "ToListAsync ()" и "AsAsyncEnumerable (). ToList ()" - PullRequest
0 голосов
/ 16 мая 2019

Функция должна возвращать Task<List<Record>> После того, как обе опции возвращают Task<List<Record>>, какая из них более эффективна?Есть ли здесь какой-нибудь стандартный способ?

Вариант 1:

Task<List<Record>> GetRecords()
{
    return 
    DbContext.Set<Record>.Where(predicate).ToListAsync();
}

Вариант 2:

Task<List<Record>> GetRecords()
{
    return
    DbContext.Set<Record>.Where(predicate).AsAsyncEnumerable().ToList();
}

1 Ответ

1 голос
/ 16 мая 2019

Выберите вариант 1 ToListAsync, поскольку исходный код из AsAsyncEnumerable явно упоминает

Это внутренний API, который поддерживает базовую инфраструктуру Entity Framework и не подчиняетсяк тем же стандартам совместимости, что и публичные API.Он может быть изменен или удален без предварительного уведомления в любом выпуске.Вы должны использовать его непосредственно в своем коде с особой осторожностью, зная, что это может привести к сбоям приложения при обновлении до новой версии Entity Framework Core.

Официальная документация Упоминает

Этот API поддерживает инфраструктуру Entity Framework Core и не предназначен для использования непосредственно из вашего кода.Этот API может измениться или быть удален в будущих выпусках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...