У меня есть два запроса, которые должны выполнять ту же работу:
1.
var date = DateTime.
var q = _entityManager.Websites.Include("OfflineSites")
.Where(website => (website.LastCheck == null) || SqlFunctions.DateDiff("minute", website.LastCheck.Value, date) >= website.CurrentPingTime);
q.QueryStrategy = QueryStrategy.DataSourceOnly;
var lst = q.Execute().Cast<Website>().ToList();
2.
var query = new PassthruEsqlQuery(typeof(Website), @"Select * From Websites Where Id in (Select Id From (Select Id,CurrentPingTime,Abs(DateDiff(minute,CURRENT_TIMESTAMP,LastCheck)) LastCheckDiffNow From Websites )
as ret Where CurrentPingTime <= LastCheckDiffNow)");
query.QueryStrategy = QueryStrategy.DataSourceOnly;
var result = query.With(_entityManager).Execute().Cast<Website>();
var lst = result.ToList()
Однако первый работает как шарм, но медленнее, второй возвращает пустой список. это странно, потому что я проверил sql-код в SSMS и дал хорошие результаты. Что может быть причиной такого поведения.