Dlaczego ta instrukcja łączenia LINQ nie działa?
Mam to zapytanie 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();
Który generuje ten błąd:
Nie można utworzyć stałej wartości typu „System.Collections.Generic.IEnumerable`1”.
W tym kontekście obsługiwane są tylko typy pierwotne („takie jak Int32, String i Guid”).
[EDYTOWAĆ] Oto kodWeightedItem
:
public class WeightedItem
{
public int _id;
public decimal? _score;
public WeightedItem(int id, decimal? score)
{
_id = id;
_score = score;
}
}
Czy widzisz, co zrobiłem źle? Kod kompiluje się doskonale, a oba _ctx.Items i itemScores zawierają odpowiednie wartości.