Почему не работает этот оператор соединения 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();

Который генерирует эту ошибку:

Невозможно создать постоянное значение типа '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 содержат правильные значения.

Ответы на вопрос(3)

Ваш ответ на вопрос