限制数据查询并仅获取最后1000行

Ale*_*eGO 4 .net c# linq asp.net nhibernate

我使用linq来nhibernate来查询来自大表的数据.我试图限制我的数据查询,只获得最后1000行,然后进行过滤,排序和分页.

当我尝试使用.Take()时出现错误:

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)), ), ))
Run Code Online (Sandbox Code Playgroud)

我的代码:

query = query.Take(rowCount);
query = query.ApplyFiltering(cmd, binder);
query = query.ApplySorting(cmd, binder);
binder.TotalCount = query.Count();
query = query.ApplyPaging(cmd);
Run Code Online (Sandbox Code Playgroud)

非常感谢,抱歉我的英语不好

mel*_*okb 5

尝试:

query.OrderByDescending(criteria).Take(rowCount).OrderBy(criteria)
Run Code Online (Sandbox Code Playgroud)