Linq to Nhibernate查询的Where(...)子句中的函数调用是否会对性能产生负面影响?

时间:2009-11-18 20:50:58

标签: linq performance nhibernate linq-to-nhibernate linq-expressions

我在我正在构建的应用程序中使用linq来实现nhibernate和IQueryable.Where函数。令我神秘的是我创建的Expression和传递给INhibernateQueryable的Where函数如何影响性能。

在性能方面,我不确定在编写这些查询表达式时应该避免哪些问题。如果我传入一个带有函数调用的表达式,如:

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

它是否会检索每条记录where IsBuyOrder = true,然后在延迟执行不再延期后立即调用它们上的函数CheckVariousProperties

函数调用如何影响LinqToNhibernate的性能?

在LINQ to Nhibernate查询表达式中应该避免哪些事情?

2 个答案:

答案 0 :(得分:0)

我会从查询部分中删除CheckVariousProperties(x)并将其应用于返回的查询结果。

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

答案 1 :(得分:0)

最好的办法是使用NHibernate Profiler来分析您的应用程序。它将能够帮助您找出最大的瓶颈。