2017-07-15 5 views
0

J'ai 3 tables qui sont liés les uns aux autres:entités liées Chargement en EF6

Product a beaucoup SuggestedPrices

Product a beaucoup ProductPricing

donc je veux récupérer les prix proposés comme ceci:

await ctx.SuggestedPrices 
    .OrderByDescending(pp => pp.SuggestionDate) 
    .Include(p1 => p1.Customer) 
    .Include(p2 => p2.Product) 
    .Include(p3 => p3.Product.ProductPricing) 
    .ToListAsync() 

Selon votre requête: i ajouté ce qui suit:

Classe de produit:

public class Product : ReportingBase { 
    // Product-ProductPricing -> One Product has many Prices 
    public virtual ICollection<ProductPricing> ProductPricing { get; set; } 
    // Product-SuggestedPrices 
    public virtual ICollection<SuggestedPrice> SuggestedPrices { get; set; } 
} 

classe ProductPricing:

public class ProductPricing { 
    // ProductPricings-Product 
    public virtual Product Product { get; set; } 
    public int ProductId { get; set; } 
} 

classe SuggestedPrice:

public class SuggestedPrice : EntityBase { 
    // SuggestedPrices-Product 
    public virtual Product Product { get; set; } 
    public int ProductId { get; set; } 

    // SuggestedPrices-Customer 
    public virtual ApplicationUser Customer { get; set; } 
    public string CustomerId { get; set; } 
} 

mais quand j'ajouter la ligne .Include(p3 => p3.Product.ProductPricing) je reçois une erreur qui dit:

Utiliser des chemins parsemés de propriétés de navigation de référence et l'opérateur Select pour les propriétés de navigation collection

comment je me débarrasser de cette erreur?

merci à vos réponses

+0

non, ce n'est pas mon cas, je ne peux pas mettre le ' Sélectionnez l'opérateur sur une entité comme 'Product' @FedericoDipuma – Hooman

+0

Ajoutez la classe' SuggestedPrice' à la question, nous avons donc tous les éléments de votre requête. –

+0

vous voici @FedericoDipuma – Hooman

Répondre

0

Après quelques débattant j'ai découvert qu'il n'y a pas besoin d'inclure Product.ProductPricing et il est déjà là:

OrgPrice = p.Product.ProductPricing.FirstOrDefault().OrgPrice, 
PriceAfterDiscount = p.Product.ProductPricing.FirstOrDefault().Price