我有这个 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();
这个错误是由以下代码引起的:
无法创建类型为 'System.Collections.Generic.IEnumerable`1' 的常量值。
在此上下文中,只支持基元类型(例如 Int32、String 和 Guid)。
[编辑] 这是 WeightedItem
的代码:
public class WeightedItem
{
public int _id;
public decimal? _score;
public WeightedItem(int id, decimal? score)
{
_id = id;
_score = score;
}
}
你能看出我做错了什么吗?代码编译完美,_ctx.Items 和 itemScores 都包含了适当的值。