我正在使用linq to nhibernate從大型表中查詢數據。我試圖限制我的數據查詢,只獲得最後1000行,然後才進行篩選,排序和分頁。
限制數據查詢並只獲取最後1000行
當我嘗試使用。取()我得到了一個錯誤:
unable to locate HQL query plan in cache; generating (.Count[X4Data.Entity.IEventView](.OrderBy[X4Data.Entity.IEventView,System.DateTime](.Take[X4Data.Entity.IEventView](.Where[X4Data.Entity.IEventView](NHibernate.Linq.NhQueryable`1[X4Data.Entity.IEventView], Quote((x,) => (Equal(x.DeviceId, p1))),), p2,), Quote((c5d4d87c-87ba-4e91-9652-bcdc87e3f0ba,) => (c5d4d87c-87ba-4e91-9652-bcdc87e3f0ba.AtmTime)),),))
我的代碼:
query = query.Take(rowCount);
query = query.ApplyFiltering(cmd, binder);
query = query.ApplySorting(cmd, binder);
binder.TotalCount = query.Count();
query = query.ApplyPaging(cmd);
非常感謝和抱歉,我的英語不好
http://codereview.stackexchange.com/questions/9773/optimizing-liststring-performance-in- c/9777#9777 –