У меня возникли проблемы с выполнением запроса от контроллера в моем веб-приложении ASP.NET MVC6 EF7...
Модель и DbContext находятся в этом предыдущем запросе: EF7 Неправильная конфигурация DBContext?
Проблема возникает, когда я пытаюсь выполнить следующий запрос Linq, который содержит пару объединений и пытается получить некоторые записи из базы данных для определенной даты...
public IActionResult GetEntries(int year, int month, int day)
{
//_context.Database.SetCommandTimeout(180);
string dateTest = new DateTime(year, month, day).ToString("yyyy-MM-dd");
var results = (from c in _context.Comments
join r in _context.Reviews on c.ReviewId equals r.ReviewId
join f in _context.Films on c.ReviewId equals f.ReviewId
where c.Author.Equals("AuthorTest")
&& (c.Created.CompareTo(new DateTime(year, month, day, 0, 0, 0)) >= 0) && (c.Created.CompareTo(new DateTime(year, month, day, 23, 59, 59)) < 0)
&& !r.Status.Contains("Enabled")
select new
{
ReviewId = c.ReviewId,
ReviewStatus = r.Status,
Author = c.Author
});
var results2 = results.ToList();
return View(results2);
}
Исключение, которое я получаю, это...
Исключение типа «System.Data.SqlClient.SqlException» возникло в EntityFramework.Core.dll, но не было обработано в пользовательском коде.
Дополнительная информация: Время ожидания истекло. Время ожидания истекло до завершения операции или сервер не отвечает.
Самое смешное, что... если я запускаю ТОЧНО тот же запрос без следующей строки, то он работает отлично
&& (c.Created.CompareTo(new DateTime(year, month, day, 0, 0, 0)) >= 0) && (c.Created.CompareTo(new DateTime(year, month, day, 23, 59, 59)) < 0)
Итак... исключение тайм-аута не имеет для меня особого смысла, потому что как только я удаляю условие AND, оно возвращает тысячу записей.
Кроме того, если я подключу тот же запрос к ASP.NET MVC5 EF6, запрос будет работать как шарм с условием AND...
Что мне здесь не хватает?
Наконец, еще одна вещь, которую я пробовал, заключалась в создании одного запроса Linq без соединения и с условием даты, и он также отлично работает...
public IActionResult GetEntries(int year, int month, int day)
{
//_context.Database.SetCommandTimeout(180);
string dateTest = new DateTime(year, month, day).ToString("yyyy-MM-dd");
var results = (from c in _context.Comments
where c.Author.Equals("AuthorTest")
&& (c.Created.CompareTo(new DateTime(year, month, day, 0, 0, 0)) >= 0) && (c.Created.CompareTo(new DateTime(year, month, day, 23, 59, 59)) < 0)
select new
{
ReviewId = c.ReviewId,
Author = c.Author
});
var results2 = results.ToList();
return View(results2);
}
Любые указатели?
Спасибо!