Por que essa instrução de junção LINQ não funciona?

Eu tenho essa consulta 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();

Qual está gerando este erro:

Não é possível criar um valor constante do tipo 'System.Collections.Generic.IEnumerable`1'.
Apenas tipos primitivos ('como Int32, String e Guid') são suportados neste contexto.

[EDITAR] Aqui está o código deWeightedItem:

public class WeightedItem
{
    public int _id;
    public decimal? _score;

    public WeightedItem(int id, decimal? score)
    {
        _id = id;
        _score = score;
    }
}

Você consegue ver o que eu fiz de errado? O código compila perfeitamente e ambos os _ctx.Items e itemScores contêm valores apropriados.

questionAnswers(3)

yourAnswerToTheQuestion