我到處讀到從數據庫獲取新數據的正確方法是創建DbContext的新實例,並刪除現有的數據。雖然這可能在某些情況下是廢話,但我發現很難在更復雜的情景中實現這一點。有問題的應用程序類型是客戶端應用程序,只要顯示窗體/視圖,上下文就處於這種狀態。例如,假設我們正在添加一些類型A(這是主數據)的數據,並且類型A的特定實例引用了類型B和C(這是引用的數據)的對象。這意味着在屏幕上我可以加載A的列表,B的列表和C的列表。讓我們說B的列表已經在網絡上收到了一些變化,我想加載。我怎樣才能刷新B的列表,而不需要從數據庫(獲取所有三個列表,因爲如果我摧毀的背景下,這是我需要做什麼?DbContext緩存數據
obvoius mehod會事端喜歡
我們沒有...
我沒有看到AsNoTracking如何在上述場景中使用,但也許我沒有看到什麼東西。如果我沒有跟蹤某件事情,那就意味着它沒有依附於上下文。如果它沒有附加到上下文,那麼它不能被更新。在上述情況下,我正在更新數據。那麼,你是如何確切地意味着這個工作的? – Goran
@Goran你可以附加沒有被跟蹤的實體。您甚至可以將實體附加到實現它的實體的不同上下文中。 – qujck
我知道我可以附加它。如果我接近它,那麼它被緩存。我將如何更新它,因爲現在正在跟蹤它,這與您所建議的狀態相反? – Goran