Entity Framework ObjectContext en la aplicación windows / WPF / Silverlight
Estamos escribiendo una aplicación WPF utilizando Entity Framework (Silverlight con servicios RIA para ser precisos). Estamos utilizando un ObjectContext compartido a través de la aplicación para que podamos beneficiarnos de compartir datos a través de los módulos.
El problema es que si el usuario durante su trabajo se abre, digamos ventas históricas, se carga al ObjectContext y permanece allí hasta el final de la aplicación. Así que se debe usar otro patrón.
Sé que ObjectContexts debe usarse como una sola Unidad de trabajo. Pero entonces, ¿cómo le hace saber a otras partes de la aplicación que algo ha cambiado y que deben recargar sus datos?
Edición: Ok, EventAggregator, pero entonces, esto causaría que todas las otras partes recarguen sus datos (probablemente muchos de ellos duplicados). También es probable que se necesiten muchos eventos para todos los tipos de grupos de entidades.
¿Cómo resuelves estos problemas? Mi solución actual es un tipo de compromiso: use un ObjectContext compartido para los datos centrales utilizados por toda la aplicación para que puedan compartirse y actualizarse automáticamente. Y para la gran cantidad de datos, use un nuevo ObjectContext separado. ¿Alguna idea mejor?
¿Hay alguna manera de "liberar" entidades de su DataContext para que el recolector de basura pueda hacer su trabajo y liberar la memoria?