Idaeablade PassthruEsqlQuery возвращает пустой список

1

У меня есть два запроса, которые должны выполнять ту же работу:

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 и дал хорошие результаты. Что может быть причиной такого поведения.

Теги:
database
devforce

1 ответ

1

Вы уверены, что этот PassthruEsqlQuery на самом деле не вызывает ошибку? Для PassthruEsqlQuery требуется ESQL, а не SQL, и то, что вы показываете, выглядит неправильно. Там еще некоторая информация о DevForce запрос здесь, и ESQL здесь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню