我有一个实体(使用Fluent Nhibernate)映射到数据库中的视图
该视图有许多列,但用户可以选择他希望在报表中看到的列。出于性能原因,我希望生成的数据库查询仅包含这些列
我认为这可以使用QueryOver<>来完成,如下所示:How to select only a few columns in my NHibernate query?
问题是我需要获取Iqueryable进行分页和排序,所以我使用的是Linq Session.Query<>扩展方法。
我要么需要一种方法将QueryOver转换为IQueryable,或者将投影直接应用于IQueryable。由于要选择的列是动态的,我无法创建新的实体类或新的映射
感谢
答案 0 :(得分:0)
你真的需要使用LINQ吗?如果是这样,请查看System.Linq.Dynamic NuGet包,该包基于Microsoft代码。我写了一些可能对你有帮助的帖子,例如:Dynamic Linq Extension Method。不过,你可以用Criteria或HQL做得更好。