2010-11-03 26 views
12

Supongamos que tengo una entidad principal "Firma" y un puñado de entidades secundarias que heredan de la Firma. Suponiendo que los niños se llaman "RedFirm", "GreenFirm" y "BlueFirm", ¿cuál es la forma correcta de consultar la colección de la empresa si quiero recuperar solo las instancias de RedFirm y GreenFirm?Entity Framework OfType()

Sé que puedo hacer context.Firms.OfType(RedFirm), pero eso solo devuelve las instancias de RedFirm. ¿Hay alguna manera de pasar una colección de tipos en OfType o algo similar a eso? Supongo que esto se puede hacer a través de una unión, pero creo que sería menos eficiente.

Respuesta

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

Se podría hacer algo como:

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

Esta es la manera de OfType usuario