Pregunta

Quiero filtrar una colección de propiedades para encontrar todas las propiedades que son de tipo EntityCollection<> al igual que:

entity.GetProperties().Where(p => p.PropertyType == typeof(EntityCollection<>));

El código anterior siempre no devolverá los resultados porque las propiedades serán de tipo EntityCollection<TEntity> dónde TEntity es un EntityObject.

También he intentado usar EntityCollection<EntityObject> sin éxito.

No me importa el tipo específico de TEntity, Solo quiero propiedades que sean de tipo EntityCollection<> independientemente del tipo de TEntity.

Esto parece que debería ser simple, ¿me estoy perdiendo un truco aquí? :-)

¿Fue útil?

Solución

Bueno, podrías usar:

Where(p => p.PropertyType.IsGenericType && 
           p.PropertyType.GetGenericTypeDefinition() == typeof(EntityCollection<>))

¿Eso es lo que buscas? Tenga en cuenta que esto no encontrará subtipos de EntityCollection<TEntity>.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top