Entidade Framework ObjectContext no aplicativo windows / WPF / Silverlight

Estamos escrevendo um aplicativo WPF usando a estrutura Entity (Silverlight com serviços RIA para ser preciso). Estamos usando um ObjectContext compartilhado por meio do aplicativo para que possamos nos beneficiar do compartilhamento de dados entre os módulos.

O problema é - se o usuário durante o seu trabalho abrir, digamos vendas históricas, ele será carregado no ObjectContext e ficará lá até o final do aplicativo. Então, outro padrão deve ser usado.

Eu sei que o ObjectContexts deve ser usado como unidade de trabalho única. Mas então, como você permite que outras partes do aplicativo saibam que algo mudou e elas devem recarregar seus dados?

Edit: Ok, EventAggregator, mas isso faria com que todas as outras partes recarregassem seus dados (provavelmente muito duplicados). Também provavelmente muitos eventos seriam necessários para todos os tipos de grupos de entidades.

Como você resolve esses problemas? Minha solução atual é um tipo de compromisso - use um ObjectContext compartilhado para os dados principais usados ​​por todo o appliaction para que eles possam ser compartilhados e atualizados automaticamente. E para a grande quantidade de dados, use um novo ObjectContext separado. Alguma idéia melhor?

Existe uma maneira de "liberar" entidades de seu DataContext para que Garbage collector possa fazer seu trabalho e liberar a memória?

questionAnswers(4)

yourAnswerToTheQuestion