2010-10-06 45 views
2

我試圖計算兩列的差異的總和:總和的兩列的實體的不同框架

var result = model.TableExample 
        .Where(condition here) 
        .Select(s => s.Column1 - s.Column2) 
        .Sum(); 

,但呈上升趨勢的異常:

索引和長度必須指字符串中的一個位置

我無法理解這一點。沒有任何字符串,列是模型和數據庫中的整數。有什麼不對?

我正在使用MySql提供程序。

+2

你能發佈異常的完整堆棧跟蹤嗎? – dtb 2010-10-06 22:43:39

+0

是單行還是多行的結果? – Mouhannad 2010-10-06 22:51:58

回答

4

看起來像MySQL Linq提供程序中的錯誤...錯誤可能來自提供程序中的內部字符串操作。

你可以嘗試解決它通過檢索行和內存計算的總和,是這樣的:

var result = model.TableExample 
       .Where(condition here) 
       .Select(s => s.Column1 - s.Column2) 
       .AsEnumerable() 
       .Sum(); 

或者這樣:

var result = model.TableExample 
       .Where(condition here) 
       .AsEnumerable() 
       .Sum(s => s.Column1 - s.Column2); 

注意,性能將受到影響,如果有有很多行,因爲這段代碼會取出每一行而不是隻讀取總和。

+0

這可以在GridView模板列Eval中完成嗎? – 2012-04-26 19:28:05

相關問題