IAsyncEnumerable или IEnumerable - C#
Формулировка задачи:
Есть метод:
Стоит-ли использовать IAsyncEnumerable или можно обойтись IEnumerable:
В итоге, в первом случае у меня два purse.ToList(), во втором один purse.ToList()
Обращение к бд, вроде как будет одно, но в случае с await purse.ToList() я два раза буду использовать локальный запрос IAsyncEnumerable?
[HttpPost] public async Task<IActionResult> GetPay(int?[] quantity) { if (!quantity.All(q => q == null)) { IAsyncEnumerable<Money> purse = (await _db.PurseSet.Include(p => p.Money) .AsNoTracking() .ToListAsync()) .SelectMany(p => p.Money) .Where(p => p.PurseId == 2) .ToAsyncEnumerable(); (await purse.ToList()) .ForEach(m=>m.Quantity = 30); _db.MoneySet.UpdateRange(await purse.ToList()); await _db.SaveChangesAsync(); return RedirectToAction("Index"); } return NotFound(); }
[HttpPost] public async Task<IActionResult> GetPay(int?[] quantity) { if (!quantity.All(q => q == null)) { IEnumerable<Money> purse = (await _db.PurseSet.Include(p => p.Money).AsNoTracking().ToListAsync()) .SelectMany(p => p.Money) .Where(p => p.PurseId == 2); purse.ToList().ForEach(m=>m.Quantity = 10); _db.MoneySet.UpdateRange(purse); await _db.SaveChangesAsync(); return RedirectToAction("Index"); } return NotFound(); }
Решение задачи: «IAsyncEnumerable или IEnumerable»
textual
Листинг программы
IEnumerable<Money> purse = (await _db.PurseSet.Include(p => p.Money) .SelectMany(p => p.Money) .Where(p => p.PurseId == 2) .AsNoTracking() .ToListAsync());
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д