我在我正在构建的应用程序中使用linq来实现nhibernate和IQueryable.Where函数。令我神秘的是我创建的Expression
和传递给INhibernateQueryable的Where函数如何影响性能。
在性能方面,我不确定在编写这些查询表达式时应该避免哪些问题。如果我传入一个带有函数调用的表达式,如:
CurrentSession.Linq<ENTITY>().Where(x => x.IsBuyOrder && CheckVariousProperties(x))
它是否会检索每条记录where IsBuyOrder = true
,然后在延迟执行不再延期后立即调用它们上的函数CheckVariousProperties
?
函数调用如何影响LinqToNhibernate的性能?
在LINQ to Nhibernate查询表达式中应该避免哪些事情?
答案 0 :(得分:0)
我会从查询部分中删除CheckVariousProperties(x)
并将其应用于返回的查询结果。
var myresult= [object].Where(x => x.IsUBuyOrder);
var checkedResult = myresult.Where(x => CheckVariousProperties(x));
答案 1 :(得分:0)
最好的办法是使用NHibernate Profiler来分析您的应用程序。它将能够帮助您找出最大的瓶颈。