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.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage