2010-11-03 5 views
12

Supposons que j'ai une entité parente "Firm" et une poignée d'entités enfants qui héritent de Firm. En supposant que les enfants sont nommés "RedFirm", "GreenFirm" et "BlueFirm", quelle est la bonne façon d'interroger la collection Firm si je veux récupérer uniquement les instances RedFirm et GreenFirm?Entity Framework OfType()

Je sais que je peux faire context.Firms.OfType(RedFirm), mais cela ne renvoie que les instances RedFirm. Est-il possible de passer une collection de types dans OfType ou quelque chose de similaire à cela? Je suppose que cela peut se faire par l'intermédiaire d'un syndicat, mais je pense que ce serait moins efficace.

Répondre

20
context.Firms.Where(x => x is RedFirm || x is GreenFirm); 
7

Vous pouvez faire quelque chose comme:

context.Firms.Where(item => (!(item is BlueFirm))); 
1
context.Firm.OfType<RedFirm>()./Rest of the query/ 

C'est la manière à l'utilisateur OfType