Entity Framework ObjectContext w aplikacji Windows / WPF / Silverlight

Piszemy aplikację WPF przy użyciu framework Entity (Silverlight z usługami RIA). Korzystamy z udostępnionego obiektu ObjectContext za pośrednictwem aplikacji, dzięki czemu możemy korzystać z udostępniania danych między modułami.

Problem polega na tym, że jeśli użytkownik podczas swojej pracy otworzy powiedzmy historyczną sprzedaż, zostanie załadowany do ObjectContext i pozostanie tam do końca aplikacji. Dlatego należy użyć innego wzoru.

Wiem, że ObjectContexts powinny być używane jako pojedyncza jednostka pracy. Ale w jaki sposób pozwalasz innym częściom aplikacji wiedzieć, że coś się zmieniło i powinny przeładować swoje dane?

Edycja: Ok, EventAggregator, ale wtedy spowoduje to, że wszystkie inne części przeładują swoje dane (prawdopodobnie wiele z nich są duplikowane). Prawdopodobnie wiele wydarzeń będzie potrzebnych dla wszystkich typów grup entity.

Jak rozwiązać te problemy? Moje obecne rozwiązanie jest rodzajem kompromisu - użyj udostępnionego obiektu ObjectContext dla podstawowych danych używanych przez całą aplikację, aby mogły być udostępniane i aktualizowane automatycznie. A dla dużej ilości danych użyj nowego oddzielnego ObjectContext. Jakieś lepsze pomysły?

Czy istnieje sposób „zwolnienia” elementów z ich DataContext, aby Garbage Collector mógł wykonać swoje zadanie i zwolnić pamięć?

questionAnswers(4)

yourAnswerToTheQuestion