1
我有一個映射(使用Fluent Nhibernate)到數據庫中的視圖的實體。
視圖有很多列,但用戶可以選擇他想要在報表中看到的列。出於性能原因,我希望生成的數據庫查詢僅包含這些列。
我認爲這是可以使用QueryOver <>來完成,這裏explianed:How to select only a few columns in my NHibernate query?
的問題是,我需要獲得一個IQueryable的分頁和排序,所以我用LINQ Session.Query <>擴展方法。
我需要一種方法將QueryOver轉換爲IQueryable或將投影直接應用於IQueryable。由於要選擇的列是動態的,因此我無法創建新的實體類或新的映射。
謝謝僅選擇Nhibernate中的特定列IQueryable
你可以檢查[this](http://stackoverflow.com/a/25972767/1679310)。與NHiberante IQueryable實現的基本投影應該開箱即用 – 2014-09-24 14:02:14
問題是,我有列顯示爲一個字符串列表,我不知道如何在IQueryable選擇使用該列表 – 2014-09-24 14:40:15
這是Criteria API和使用字符串的投影的最佳選擇。有了IQueryable,你將不得不創建自己的表達式構建器......非常具有挑戰性,但並不難。無論如何,字符串常量屬性名稱===最好的是[標準API](http://nhforge.org/doc/nh/en/index.html#querycriteria-projection) – 2014-09-24 14:42:02