Wpf 实体框架:保存更改前重新查询源

Wpf 实体框架:保存更改前重新查询源,wpf,vb.net,entity-framework,Wpf,Vb.net,Entity Framework,对。我的数据库表包含数千条记录,通过使用EF应用日期过滤器,我只读取了几十条记录。假设我的用户在UI中更改了其中一些,然后从UI中更改日期范围以引入更多记录。日期筛选器控件直接绑定到我的VM的两个属性DateFrom和DateTo。这些属性依次执行以下操作: AllOrders = context.Orders.Where(Function(x) x.Date >= DateFrom AndAlso x.Date <= DateTo).ToList() AllOrders=cont

对。我的数据库表包含数千条记录,通过使用EF应用日期过滤器,我只读取了几十条记录。假设我的用户在UI中更改了其中一些,然后从UI中更改日期范围以引入更多记录。日期筛选器控件直接绑定到我的VM的两个属性DateFrom和DateTo。这些属性依次执行以下操作:

AllOrders = context.Orders.Where(Function(x) x.Date >= DateFrom AndAlso x.Date <= DateTo).ToList()

AllOrders=context.Orders.Where(函数(x)X.Dease= DeaseOx.DeX.Po.< P>如果你在ObjtCurror环境中,你可以用EF告诉你如何处理这些实体。如果你在DbContext上,我相信你可以使用。无论如何,你应该考虑使用短时间的上下文而不是长寿命的上下文。

用短命的上下文,人们如何管理变更跟踪?我的VM公开了属性。直接创建模型类型的副本(而不是创建另一层作为模型类型副本的BO类型),因此我认为最好是每个窗口保持一个上下文。如果在加载后断开上下文连接,如何跟踪新的和更改的对象?如果您拥有实体但未更改它们,则可以将它们重新附加到上下文(附加)。如果更改实体,您可以附加它并将其标记为已修改。显然,您需要找到一个平衡点-尝试短期上下文,如果它不适合您(同样,您会继续附加并将其标记为已修改,或者您甚至不知道它是否已修改,并且必须对此进行跟踪)然后以最适合你的方式使用上下文。当你投否决票时,你应该考虑添加一条评论,突出问题的症结所在,这样我以后就可以处理这些事情了。