¿Deberían las propiedades de navegación de las entidades precargadas o cargadas de perezosos a través de un servicio WCF?

StackOverflow https://stackoverflow.com/questions/5870008

Pregunta

Estamos utilizando entidades auto-seguimiento a través de un servicio WCF. Las entidades son devueltas al cliente sin que se carguen sus propiedades de navegación.

¿Es una mejor idea enviar todas las propiedades de navegación a la vez o cargarlas según sea necesario? Si lazy se carga, ¿es una buena idea cargarlos de forma asincrónica? Todas las llamadas de servicio WCF que he usado hasta ahora las palabras clave ALEGA/ASYNC.

Tengo cierta preocupación por cargarlos todos a la vez porque algunos objetos tienen muchas propiedades de navegación que no siempre se usan. Por ejemplo, la entidad del consumidor actualmente tiene alrededor de 20 y se espera que obtenga más. Algunos ejemplos incluyen direcciones, teléfonos, documentos y notas. Los usuarios pueden configurar su propia área de trabajo para que alguien que trabaje con documentos siempre necesite la propiedad de documentos cuando un consumidor se carga, mientras que la mayoría de los demás no lo haría.

¿Fue útil?

Solución

Realmente depende de la forma en que usas entidades. El más costoso será el viaje de ida y vuelta al servicio, por lo que si tiene propiedades de navegación que se utilizan en la mayoría de los escenarios, puede cargarlas ansiosas, pero para las propiedades de navegación utilizadas solo ocasionalmente puede usar "carga perezosa". La respuesta real a su pregunta solo se puede proporcionar mediante un análisis significativo de su aplicación y pruebas de rendimiento.

Lo que me temo es la forma en que puedes actualizar ese modelo. Una vez que cargue todas las entidades relacionadas y haga un gráfico de objetos de ellas, ¿puede enviar solo parte del gráfico al servicio? Espero que no puedas.

Editar:

Leí tu otra pregunta con "UI dinámica". Entonces, una vez que el usuario inicia la aplicación, probablemente sepa qué widgets de UI se deben mostrar. Puede exponer algún método inicial que pasará la descripción de todas las propiedades de navegación requeridas por los widgets abiertos actualmente y cargar otras propiedades cuando se abre un nuevo widget. Simplemente agregar widget llevará algún tiempo obtener los datos. Aún así, algunos datos de navegación más pequeños se pueden incluir automáticamente.

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