右。我的数据库表包含数千条记录,我通过使用EF应用日期过滤器只读了几十个。假设我的用户在UI中更改了其中的一些,然后从UI更改日期范围以引入更多记录。日期筛选器控件直接绑定到我的VM的两个属性DateFrom和DateTo。这些属性反过来这样做:
AllOrders = context.Orders.Where(Function(x) x.Date >= DateFrom AndAlso x.Date <= DateTo).ToList()
AllOrders是我的UI的DataContext绑定的属性。我的问题是,这种重新征服会丢掉我当地的变化吗?我应该在重新查询之前调用SaveChanges()吗?如果我只想在用户明确按下“保存”按钮时保存内容,该怎么办?
答案 0 :(得分:0)
如果您使用的是ObjectContext,则可以使用MergeOption告诉EF如何处理实体。如果您使用的是DbContext,我相信您可以使用.AsNoTracking()。在任何情况下,您都应该考虑使用短期上下文而不是长期上下文。