Как сделать запрос, так чтобы выборка проходила на стороне SQL сервера? - C#
Формулировка задачи:
Помогите переделать запрос, так чтобы не грузились все данные:
Но как эту часть: .ToAsyncEnumerable().Where... переделать в запрос SQL?
Если сделаю так, то будет ошибка:
Листинг программы
- IAsyncEnumerable<MessageInfo> message = _context.MessageInfos.Where(mes => !mes.IsLine)
- .Include(c => c.Coordinates)
- .Include(d => d.DateAddObject)
- .ToAsyncEnumerable()
- .Where(d => d.DateAddObject.Date.Date == dateTime.Date);
Листинг программы
- IQueryable<MessageInfo> message = _context.MessageInfos.Where(mes => !mes.IsLine)
- .Include(c => c.Coordinates)
- .Include(d => d.DateAddObject)
- .Where(d => d.DateAddObject.Date.Date == dateTime.Date);
- if (message != null)
- {
- List<HomeIndexViewModel> homeIndexViewModel = new List<HomeIndexViewModel>();
- await (message
- .AsNoTracking())
- .ForEachAsync(mes =>
- {
- if (mes != null)
- homeIndexViewModel.Add(new HomeIndexViewModel
- {
- MarkerMessageId = mes.MessageInfoId,
- Latitude = mes.Coordinates.First().Latitude,
- Longitude = mes.Coordinates.First().Longitude,
- Title = mes.Title
- });
- });
- return Json(homeIndexViewModel);
- }
Листинг программы
- if (_context != null && DateTime.TryParse(date, out DateTime dateTime))
- {
- IAsyncEnumerable<MessageInfo> message = _context.MessageInfos.Where(mes => !mes.IsLine)
- .Include(c => c.Coordinates)
- .Include(d => d.DateAddObject)
- .ToAsyncEnumerable()
- .Where(d => d.DateAddObject.Date.Date == dateTime.Date);
- if (message != null)
- {
- List<HomeIndexViewModel> homeIndexViewModel = new List<HomeIndexViewModel>();
- await (message)
- .ForEachAsync(mes =>
- {
- if (mes != null)
- homeIndexViewModel.Add(new HomeIndexViewModel
- {
- MarkerMessageId = mes.MessageInfoId,
- Latitude = mes.Coordinates.First().Latitude,
- Longitude = mes.Coordinates.First().Longitude,
- Title = mes.Title
- });
- });
- return Json(homeIndexViewModel);
- }
- }
Решение задачи: «Как сделать запрос, так чтобы выборка проходила на стороне SQL сервера?»
textual
Листинг программы
- DateTime? begin = beginDate;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д