Warum funktioniert diese LINQ-Join-Anweisung nicht?
Ich habe diese LINQ-Abfrage:
// 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();
Welches generiert diesen Fehler:
Es kann kein konstanter Wert vom Typ "System.Collections.Generic.IEnumerable`1" erstellt werden.
In diesem Kontext werden nur primitive Typen ('wie Int32, String und Guid') unterstützt.
[BEARBEITEN] Hier ist der Code vonWeightedItem
:
public class WeightedItem
{
public int _id;
public decimal? _score;
public WeightedItem(int id, decimal? score)
{
_id = id;
_score = score;
}
}
Kannst du sehen, was ich falsch gemacht habe? Der Code wird perfekt kompiliert und sowohl _ctx.Items als auch itemScores enthalten richtige Werte.