2

Я использую linq для nhibernate и IQueryable.Where в приложении, которое я создаю. И то, что меня озадачивает, - это то, как я создаю и перехожу к функции Where INCHINERATEQueryable, влияющей на производительность.Вызывает ли вызов функции предложение Where (...) запроса Linq to Nhibernate отрицательно влияет на производительность?

Я не совсем уверен, что такое ошибки, которые я должен избегать при написании этих выражений с точки зрения производительности. Если я прохожу в выражении с вызовом функции, как:

CurrentSession.Linq<ENTITY>().Where(x => x.IsBuyOrder && CheckVariousProperties(x)) 

Это собирается получить каждую запись where IsBuyOrder = true, а затем вызвать функцию CheckVariousProperties на них, как только отложенное исполнение больше не откладывается?

Как функциональные вызовы влияют на производительность LinqToNhibernate?

Каких вещей следует избегать в выражении LINQ to Nhibernate Expression?

+1

Я думаю, что легче написать быстрый тест, чтобы проверить это. – queen3

+0

Ну, может быть, это правда, и я могу это сделать, но я хотел посмотреть, может ли кто-то с подробным знанием объяснить некоторые из вещей, которые нужно искать. –

ответ

0

Я бы исключил CheckVariousProperties(x) из части запроса и применил его к возвращенному результату запроса.

var myresult= [object].Where(x => x.IsUBuyOrder); 
var checkedResult = myresult.Where(x => CheckVariousProperties(x)); 
+0

спасибо за ответ, вы говорите, что это будет работать лучше? Зачем? –

+1

Я считаю, что это ничего не изменит, поскольку я думаю, что запросы объединены - если вы не вызываете ToList() в первом запросе. – queen3

+0

Я даже не уверен, что их объединение будет работать - не нужно ли сначала возвращать данные, а затем выполнить CheckVariousProperties? –

0

Лучшее, что нужно сделать, это профилировать приложение, используя NHibernate Profiler. Он сможет помочь вам определить ваши самые большие узкие места.

+0

Спасибо, может быть, я буду использовать его. Мне было интересно, но знаете, как linq to nhibernate обрабатывает вызовы функций в выражениях? –