我有這樣的LINQ查詢:爲什麼這個LINQ連接語句不起作用?
// types...
LinkedList<WeightedItem> itemScores = new LinkedList<WeightedItem>();
var result = from i in _ctx.Items
join s in itemScores on i.Id equals s._id
orderby s._score descending
select new ItemSearchResult(i, s._score);
// this fails:
return result.ToList();
這是產生這個錯誤:
Unable to create a constant value of type 'System.Collections.Generic.IEnumerable`1'.
Only primitive types ('such as Int32, String, and Guid') are supported in this context.
[編輯]這裏是WeightedItem
代碼:
public class WeightedItem
{
public int _id;
public decimal? _score;
public WeightedItem(int id, decimal? score)
{
_id = id;
_score = score;
}
}
你能看到我做錯了什麼?代碼編譯完美,_ctx.Items和itemScores都包含適當的值。
你可以發佈WeightedItem的代碼 – Lazarus 2009-12-30 19:50:40
顯然WeightedItem不是原始類型。 – DOK 2009-12-30 19:50:50
拉撒路,它完成了。 DOK,這意味着什麼? – Mickel 2009-12-30 19:53:14