Как сделать запрос, так чтобы выборка проходила на стороне 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;