在我的 DBMS 上,我有两个具有一对多关系的表(A <- B)。在第一次运行时,我检索了 A(包括 B)的一些记录,如下所示:
var lst = from a in ctx.As.Include("Bs") select a;
所以,一切正常。但是几分钟后,我想再次获得它们,因为它们可以在其他应用程序上进行更改。
我试着用
ctx.Refresh(RefreshMode.StoreWins, lst);
当我这样做时,唯一刷新的是来自 B 的对象,而不是 A。因此,我必须执行另一个步骤,例如:
foreach (var a in lst) {
ctx.Refresh(RefreshMode.StoreWins, a.Bs);
}
如果我没有Bs
在linq语句中包含也可以,然后使用Load
方法而不是Refresh
这里的问题是调用Refresh
或调用Load
次数过多可能会降低性能。如何在没有这么多调用的情况下从数据库存储中重新加载它们?
谢谢!