2016-10-20 38 views
-1

的定義,我有using System.Linq;所以我想我的語法是錯誤的,但我不能看到它不包含「點心」

public void Count() 
{ 
    var count = _context.Objects 
     .Select(i => new { i, ViewCount = i.Relations.Sum(j => j.ViewCount) }); 
} 
+0

您是否需要i.Relations上的.ToList()? –

+2

關係是IEnumerable 還是不是?如果不是,那麼你不能使用'Sum'方法或任何其他的LINQ方法。 – Christos

+3

如果'i.Relations'沒有名爲'Sum'的方法或擴展,那很可能與'i.Relations'的類型有關。你認爲這裏的任何人都知道「i.Relations」的類型比你多嗎?或甚至一樣多? –

回答

-1

i.Relations已經由類型的i.Relations確定的成員。由於您包含using System.Linq;,迄今爲止最可能的解釋是i.Relations被聲明爲某種類型,它不會執行IEnumerable<T>i.Relations可能是各種各樣的東西,但它聽起來像編譯器告訴你有一件事情不是。

-2

關係屬性應該是一個IEnumerable。請確保您有

using System.Linq 

句話,因爲這是誰帶來的總和擴展方法

+4

這是問題的第一行 –

-1

你很可能試圖總結字符串或任何其他對象值集合。

請嘗試在sum之前轉換該值,您必須確保j.ViewCount始終爲整數,否則您會遇到異常。請嘗試下面的代碼。

public void Count() 

{ 變種計數= _context.Objects 。選擇(I =>新的{I,觀看次數= i.Relations.Sum(J => Convert.ToInt32(j.ViewCount))}); }