J'obtiens cette exception :
Le type de membre spécifié 'Paid' n'est pas supporté par LINQ to Entities. Seuls les initialisateurs, les membres de l'entité et les propriétés de navigation de l'entité sont pris en charge.
public ActionResult Index()
{
var debts = storeDB.Orders
.Where(o => o.Paid == false)
.OrderByDescending(o => o.DateCreated);
return View(debts);
}
Ma classe Modèle
public partial class Order
{
public bool Paid {
get {
return TotalPaid >= Total;
}
}
public decimal TotalPaid {
get {
return Payments.Sum(p => p.Amount);
}
}
La requête fonctionne si je supprime la clause "Where" et affiche des informations correctes sur les paiements. Avez-vous une idée de ce qui ne va pas dans ce code ?
Résolu comme la réponse suggérée avec :
public ActionResult Index()
{
var debts = storeDB.Orders
.OrderByDescending(o => o.DateCreated)
.ToList()
.Where(o => o.Paid == false);
return View(debts);
}
15 votes
Réponse simple : Vous ne pouvez pas utiliser les propriétés non mappées dans les requêtes linq-to-entities ! Seules les propriétés mappées sont traduites en SQL.