我到处读到从数据库获取新数据的正确方法是创建DbContext的新实例,并删除现有的数据。虽然这可能在某些情况下是废话,但我发现很难在更复杂的情景中实现这一点。有问题的应用程序类型是客户端应用程序,只要显示窗体/视图,上下文就处于这种状态。例如,假设我们正在添加一些类型A(这是主数据)的数据,并且类型A的特定实例引用了类型B和C(这是引用的数据)的对象。这意味着在屏幕上我可以加载A的列表,B的列表和C的列表。让我们说B的列表已经在网络上收到了一些变化,我想加载。我怎样才能刷新B的列表,而不需要从数据库(获取所有三个列表,因为如果我摧毁的背景下,这是我需要做什么?DbContext缓存数据
obvoius mehod会事端喜欢
我们没有...
我没有看到AsNoTracking如何在上述场景中使用,但也许我没有看到什么东西。如果我没有跟踪某件事情,那就意味着它没有依附于上下文。如果它没有附加到上下文,那么它不能被更新。在上述情况下,我正在更新数据。那么,你是如何确切地意味着这个工作的? – Goran
@Goran你可以附加没有被跟踪的实体。您甚至可以将实体附加到实现它的实体的不同上下文中。 – qujck
我知道我可以附加它。如果我接近它,那么它被缓存。我将如何更新它,因为现在正在跟踪它,这与您所建议的状态相反? – Goran