Pregunta

Tengo un elemento vinculado a una entidad (Contacto) que expone algunas propiedades de navegación.

Quiero que en alguna acción (es decir, un botón '' Cargar hijos ''), el Contacto se cargue para todos sus hijos y nietos como puedo hacer con un ObjectQuery. Incluya antes de la ejecución; ejemplo (pseudo):

DirectCast(element.DataContext, Contact).SubContacts. _
   Include("Address.State"). _
   Load()

Quiero poder dar forma a los resultados también volviendo a cargar elementos como el ejemplo anterior, no solo al consultar el modelo en sí.

Creo que esto debería haber sido parte de Entity-Framework de alguna manera.

¿Fue útil?

Solución

No soy positivo, sigo la pregunta, pero déjame comprobar:

Desea tomar una entidad que ya ha cargado, luego cargue una propiedad de navegación con incluir rutas para esa propiedad. En realidad, esto no es tan difícil, siempre que esté utilizando el mismo contexto que utilizó para cargar el primer objeto.

El punto importante es que cada vez que realiza una consulta que devuelve una entidad, Entity Framework la vinculará automáticamente con cualquiera de sus objetos relacionados que ya tenga. Entonces, lo que realmente desea es producir una nueva consulta que devuelva los datos adicionales, con algunos incluidos.

Cada referencia en Entity Framework tiene un método llamado CreateSourceQuery . Devuelve una consulta de objeto, por lo que puede usarla para hacer esto (lo siento, C #):

AlreadyLoadedContact.SubContacts.CreateSourceQuery().Include("Address.State").ToList();

La llamada ToList ejecuta la consulta, y Entity Framework tomará todos los resultados y los agregará automáticamente a usted SubContacts EntityCollection.

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