我们正在使用Entity Framework编写一个WPF应用程序(确切地说是使用Silverlight和RIA服务)。我们通过整个应用程序使用共享的ObjectContext,以便我们可以从模块间共享数据。
问题在于-如果用户在工作期间打开了历史销售记录,它会加载到ObjectContext中,并一直保留到应用程序结束。因此,应该使用另一种模式。
我知道ObjectContext应该用作单个工作单元。但是,那么如何让应用程序的其他部分知道某些内容已更改,他们应该重新加载其数据?
编辑:好吧,EventAggregator,但是,这将导致所有其他部分重新加载它们的(可能大部分重复)数据。还可能需要许多事件来处理所有类型的实体组。
你如何解决这些问题?我的当前解决方案是一种妥协-对于整个应用程序使用共享的ObjectContext,以便可以自动共享和更新核心数据。对于大量数据,请使用新的单独ObjectContext。有更好的想法吗?
是否有一种方法可以“释放”实体的DataContext,以便垃圾收集器可以完成其工作并释放内存?
问题在于-如果用户在工作期间打开了历史销售记录,它会加载到ObjectContext中,并一直保留到应用程序结束。因此,应该使用另一种模式。
我知道ObjectContext应该用作单个工作单元。但是,那么如何让应用程序的其他部分知道某些内容已更改,他们应该重新加载其数据?
编辑:好吧,EventAggregator,但是,这将导致所有其他部分重新加载它们的(可能大部分重复)数据。还可能需要许多事件来处理所有类型的实体组。
你如何解决这些问题?我的当前解决方案是一种妥协-对于整个应用程序使用共享的ObjectContext,以便可以自动共享和更新核心数据。对于大量数据,请使用新的单独ObjectContext。有更好的想法吗?
是否有一种方法可以“释放”实体的DataContext,以便垃圾收集器可以完成其工作并释放内存?