2017-08-15 27 views
0

我嘗試把下面的鏈接導致分頁列表:運行總通過LINQ:地方導致分頁列表

LINQ to SQL and a running total on ordered results

我會稍有改變的代碼:

var userDocs = db.Docs.AsQueryable(); 

Int64 running_total = 0; 
var moeen = userDocs.ToList() 
         .OrderBy(a => a.DocDate) 
         .Select(a => 
            { 
             running_total += 1; 
             return new MoeenViewModel 
             { 
              Doc = a, 
              remain = running_total 
             }; 
            } 
          ); 

return View(moeen.ToPagedList(1, 15)); 

而是「保留「結果不以1開始。例如,如果」文檔「記錄數爲7,則以8開頭。

爲什麼? !

如果我返回查看(moeen)結果是好的

回答

0

我通過.ToList發現問題

var userDocs = db.Docs.AsQueryable(); 

Int64 running_total = 0; 
var moeen = userDocs.ToList() 
         .OrderBy(a => a.DocDate) 
         .Select(a => 
            { 
             running_total += 1; 
             return new MoeenViewModel 
             { 
              Doc = a, 
              remain = running_total 
             }; 
            } 
          ); 
moeen = moeen.ToList(); 
return View(moeen.ToPagedList(1, 15)); 

列表moeen()之前,每次使用moeen事業上running_total副作用。

看到這個: http://www.blackwasp.co.uk/LinqRunningTotal.aspx

如果你改變執行查詢之前已經關閉了該變量的值,其結果將受到影響。