¿Por qué no funcionará esta instrucción LINQ?

Tengo esta 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();

Que está generando este error:

No se puede crear un valor constante de tipo 'System.Collections.Generic.IEnumerable`1'.
En este contexto, solo se admiten los tipos primitivos ('como Int32, String y Guid').

[EDITAR] Aquí está el código deWeightedItem:

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

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

¿Puedes ver lo que he hecho mal? El código se compila perfectamente y tanto el _ctx.Items como el itemScores contienen valores apropiados.

Respuestas a la pregunta(3)

Su respuesta a la pregunta