큰 테이블에서 데이터를 쿼리하기 위해 linq를 사용하여 nhibernate를 사용하고 있습니다. 내 데이터 쿼리를 제한하고 단지 마지막 1000 행을 얻으려면 노력하고 다음 필터링, 정렬 및 pagin.
데이터 쿼리를 제한하고 마지막 행만 가져옵니다.
나는 오류를 가지고) .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)),),))
내 코드 :
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 –