2010-08-11 1 views
3

Puis-je rejoindre l'objet de liste dans la collection .net avec l'objet enity dans EF par exemplePuis-je rejoindre l'objet de liste dans la collection .NET avec l'objet enity dans EF

var prodts = from req in Product 
       join prod in context.ProductApplications on req.ProductGUID equals prod.ProductGUID 
       slect req; 

Le produit est l'objet lsit. et context.ProductApplications est l'objet Enity.

Puis-je les rejoindre, peut-on s'il vous plaît laissez-moi savoir comment rejoindre themm

Répondre

3

Vous pouvez le faire, oui. syntaxe de la méthode en chaîne alternative:

var prodts = Product. 
      Join(
        context.ProductApplications, 
        req => req.ProductGUID, 
        prod => prod.ProductGUID, 
        (req, prod) => req 
       ); 

Cela renvoie IEnumerable<Product>. La méthode Join prend le IEnumerable<> comme premier paramètre, donc ce qui va se passer est que la base de données sera interrogée et context.ProductApplications sera récupérée et les résultats seront énumérés. L'objet résultant sera utilisé pour "rejoindre" votre collection Product.

Mise à jour

Selon vos commentaires, vous avez des GUIDs dans la collection Product(s?) et que vous voulez récupérer toutes les entités de context.ProductApplications que « match » les GUIDs (corrigez-moi si je me trompe). Si c'est le cas, vous n'avez pas vraiment besoin d'un join.

var prodts = context. 
      ProductApplications. 
      Where(pa => Product. 
         Select(p => p.ProductGUID). 
         Contains(pa.ProductGUID) 
       ); 
+0

merci pour votre réponse, j'ai problème un peu diffrent, dans ma base de données j'ai une table temporaire qui contient quelques GUIDs, je veux trouver les tous les produits dans la base de données qui ont les GUIDs mêmes dans le tableau temp La table de .product est énorme, pour cela je fais simple joignent la base de données et retive les données. Si je veux le faire dans un cadre enity dans MT, j'ai créé une collection de listes et de se joindre à l'unité de produit comme vous l'avez mentionné ci-dessus. mais il est temps de sortir tout en feteching les données de la base de données lui-même. J'espère que vous comprenez le probelm, il n'y a aucun moyen de résoudre le problème –

+0

Non, je ne comprends pas vraiment le problème, pourriez-vous essayer de structurer votre explication différemment peut-être? Ces points sont assez flous en ce moment: '" J'ai créé une collection de listes et je me suis joint au produit "' - autant que je vois, vous avez une collection de produits (ça s'appelle 'Product', btw, est-ce une faute de frappe? Devrait-il être «Products»?), Et une collection de ProductApplications (récupéré à la volée). Vous les rejoignez avec 'LINQ' et obtenez la collection résultante. Corrigez-moi si je me trompe. L'autre phrase floue est la suivante: 'mais il est timming out tout en feteching les données de la base de données lui-même ' – Yakimych

+0

ok laissez-moi reformuler, quand j'utilise join que vous avez mentionné ci-dessus, il jette l'erreur en expirant le fectching lignes de la base de données, je veux dire tout en fecthing les lignes de context.ProductApplications enity. parce que la table ProductApplications dans la base de données est très énorme. comment puis-je résoudre ce problème. –

Questions connexes