При использовании Entity Framework с доменными службами RIA доменные службы наследуются от LinqToEntitiesDomainService
, что, я полагаю, позволяет выполнять запросы LINQ на низком уровне (на стороне клиента), которые распространяются на ORM; Это означает, что все запросы выполняются к базе данных, и только соответствующие результаты извлекаются на сервер и, следовательно, клиент.
Пример:
var query = context.GetCustomersQuery().Where(x => x.Age > 50);
Сейчас у нас есть доменная служба, которая наследуется от DomainService и извлекает данные через сеанс NHibernate, как в:
virtual public IQueryable<Customer> GetCustomers()
{
return sessionManager.Session.Linq<Customer>();
}
Проблема этого подхода заключается в том, что невозможно выполнять конкретные запросы без извлечения целых таблиц на сервер (или клиент) и их фильтрации там.
Есть ли способ заставить запросы LINQ работать с NHibernate через RIA, как это работает с EF? Если нет, то мы готовы перейти на EF из-за этого, потому что влияние на производительность будет слишком сильным.
Спасибо.