Entity Framework 3.5 - Comment charger des enfants

.net-3.5 entity-framework linq

Question

Mes questions sont probablement très simples, comment charger des enfants / sous-classes. Il n'y a pas de "charge" ou quelque chose de similaire que je puisse trouver pour que le contexte charge les enfants.

la classe de contexte est de type ObjectContext, voir ci-dessous:

public partial class RTIPricingEntities : global::System.Data.Objects.ObjectContext

Produit

Product.ModifiedByUser (comment charger cette classe lors du chargement d'un produit ??)

Product.Category (comment charger les catégories lors du chargement du produit?)

Réponse populaire

Vous pouvez charger avec impatience:

var q = from p in Context.Products
                  .Include("ModifiedByUser")
                  .Include("Category")
        select p;

... ou projet:

var q = from p in Context.Products
        select new 
        {
           Id = p.Id,
           Name = p.Name
           ModifiedByUserName = p.ModifiedByUser.Name,
           CategoryName = p.Category.Name
        }

L'avantage de la projection est que vous n'obtenez que les données dont vous avez besoin, pas l'ensemble des entités référencées. L'avantage du chargement rapide est que les entités renvoyées font un suivi des modifications. Choisissez la bonne technique pour le problème à résoudre.

Mettre à jour

Oui, il est important de mentionner que vous utilisez les services RIA. Je présume que vous travaillez également au sein du client. Cela rend les choses complètement différentes.

Dans les services RIA, il est très important de vous assurer de renvoyer le graphique entier des entités dont vous avez besoin lors du chargement initial. Vous ne souhaitez pas appeler .Load () sur une entité, car cela constituerait un problème supplémentaire pour le serveur, ce qui aurait un impact négatif sur les performances. Si, par exemple, vous vous trouvez dans un client Silverlight et demandez au serveur une liste d'instances et que leurs propriétés associées ne sont pas encore matérialisées, il est déjà trop tard. De plus, Include ne fonctionnera pas dans un client Silverlight. Par conséquent, les services RIA disposent d'outils serveur que vous pouvez utiliser pour vous assurer de renvoyer le graphique d'objet correct, entièrement matérialisé, au départ.

Au lieu de cela, vous devez utiliser IncludeAttribute dans votre serveur de services RIA. Vous pouvez créer une classe de métadonnées "ami" pour décorer votre modèle d'entité avec [Inclure]. Vous trouverez des exemples dans le document de présentation des services RIA, à la section 4.8 .



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow