2009-11-03 6 views
0

J'ai un objet qui a été renseigné avec le contenu de quatre entités associées différentes. Cependant j'ai une autre entité dans laquelle je ne peux pas inclure dans la requête parce qu'elle n'est pas liée dans les propriétés de navigation directement à la table IQueryable que je tire. L'entité que j'essaie d'inclure est liée à l'une des quatre entités différentes qui ont été incluses avec succès.Comment associer des entités qui ne sont pas directement mappées via une propriété de navigation

Existe-t-il un moyen d'inclure (lors de la frappe db ou après) cette entité dans le cadre de l'objet global que je crée?

Voici un exemple de ce que mes appels ressemblent à construire l'objet CartItem:

public List<CARTITEM> ListCartItem(Guid cartId) 
    { 
     //Create the Entity object 
     List<CARTITEM> itemInfo = null; 

     using (Entities webStoreContext = new Entities()) 
     { 
       //Invoke the query 
       itemInfo = WebStoreDelegates.selectCartItems.Invoke(webStoreContext).ByCartID(cartId).ToList(); 

     } 

     //Return the result set 
     return itemInfo; 
    } 

ici est le filtre selectCartItems (où je normalement faire includes):

 public static Func<Entities, IQueryable<CARTITEM>> selectCartItems = 
    CompiledQuery.Compile<Entities, IQueryable<CARTITEM>>(
     (cart) => from c in cart.CARTITEM.Include("ITEM").Include("SHIPPINGOPTION").Include("RELATEDITEM").Include("PROMOTION") 
        select c); 

de ceci j'ai mon objet CARTITEM. Le problème est que je veux inclure la table PROMOTIONTYPE dans cet objet, mais comme l'entité CARTIEM n'a pas de propriété de navigation directement dans la table PROMOTIONTYPE, j'obtiens une erreur. Faites-moi savoir si vous avez besoin de plus de précisions. Merci, Billy

Répondre

0

Vous pouvez utiliser rejoindre et si elle est la même base de données et le serveur il devrait générer la jointure dans SQL et de le faire en un seul appel ...

LinqToEnties join example

+0

Merci pour la réponse. Cependant, cela n'a pas fonctionné pour moi. –

+0

Pourquoi pas? Avez-vous eu une autre erreur ou quoi? – bytebender

+0

Je n'ai pas pu joindre une table de références croisées qui n'apparaît pas dans le modèle d'entité. Ma table CARTITEM a une table de références croisées qui lie à la table PROMOTION. Depuis que je n'ai pas pu rejoindre le je ne pouvais pas accéder à la table PROMOTIONTYPE. –

Questions connexes