Entity Framework Code First Chargement Paresseux

Je vais avoir deux catégories d'objets

public class User
{
    public Guid Id { get; set; }
    public string Name { get; set; }

    //Navigation
    public ICollection<Product> Products { get; set; }
}

public class Product
{
    public Guid Id { get; set; }

    //Navigation
    public User User { get; set; }
    public Guid User_Id { get; set; }

    public string Name { get; set; }
}

Lorsque je charge un utilisateur à l'aide de dataContext, j'obtiens la liste des Produits étant nuls (c'est ok).

Si j'ajoute "virtuel" mot-clé à la liste des Produits,

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

lorsque je charge l'utilisateur, - je obtenir la liste des Produits ainsi.

Pourquoi est-ce arrivé? Je pensais que "virtuel" mot clé est utilisé pour ne pas charger les entités sauf si vous explicite ce (à l'aide d'un "Include" déclaration)

Je pense que j'ai eu tout faux

  • vous pouvez utiliser le contexte.ContextOptions.LazyLoadingEnabled = false; à force de le contexte pas à utiliser LazyLoading
  • Avec dbContext il serait contexte.La Configuration.LazyLoadingEnabled = false;
InformationsquelleAutor Catalin | 2012-07-13