2011-04-30 4 views
3

J'ai deux entités en relation 1: n: Catégorie et produit.Code EF premier problème de chargement Eager

public class Category 
{ 
    public int CategoryID { get; set; } 
    public string CategoryName { get; set; } 

    public virtual ICollection<Product> Products { get; set; } 
} 

public class Product 
{ 
    public int ProductID { get; set; } 
    public string ProductName { get; set; } 

    public virtual Product { get; set; } 
} 

public class context : DbContext 
{ 
    public DbSet<Category> Categories { get; set; } 
    public DbSet<Product> Products { get; set; } 
} 

Je veux charger les produits dans chaque catégorie en chargeant Eager.

context.Categories.Include(c=>c.Products) 

mais Inclure ne pas charger les propriétés de navigation. il n'accepte qu'un seul paramètre appelé "path" chaîne typée.

Répondre

7

Vous manquez une utilisation? VS 2010 est un peu stupide sur celui-ci et vous avez souvent explicitement mis en:

using System.Data.Entity 

..pour obtenir le lambda comprennent l'option disponible.

Il ne vous demande pas de l'ajouter comme il a déjà une définition à base de chaîne pour inclure disponible sous

System.Linq 

.include (x => x.MyObject) est en fait une nouvelle méthode d'extension pour la méthode linq existante.

+1

Je ne peux pas trop en parler car il semble que ce ne soit pas bien connu. Je pensais que la seule façon de charger avec impatience était d'utiliser des cordes, et les cordes causaient des problèmes avec des choses pas vraiment désireuses de chargement – KallDrexx

+0

Merci! Je suis d'accord. Cela semble un peu décevant d'aller à tout ce problème pour avoir tout fortement typé puis de le référencer avec une chaîne (ie Apporter les erreurs d'exécution) :) – Gats

Questions connexes