我正在使用單個實例DbContext
方案在WPF應用程序中本地隱藏數據庫的整個副本。我聽說這是不好的做法,但我的數據庫很小,在應用程序運行時我需要在本地完整拷貝它。實體框架4.1 DbSet重新加載
的IQueryable
擴展方法,Load()
讓我預加載DbSet<>
的元素,讓我可以綁定事情的DbSet<>
的本地屬性。數據庫中的數據變化很快,所以我想SaveChanges()
並重新加載的一切,甚至已經跟蹤的對象。再次調用Load()
方法不會更新已被加載但被標記爲未更改的項目。
在DbSet<>
中重裝預裝物品的首選方法是什麼?關於我的頭頂,我只能想到調用SaveChanges()
,然後遍歷所有條目並將跟蹤值和原始值都設置爲數據庫中的當前值,然後將Load()
設置爲可能已添加的任何新對象。在我的場景中,不可能刪除對象,但我可能必須在長期運行中支持項目刪除。這看起來不正確,應該有辦法放棄一切並重新加載。看起來,放棄我的上下文並重新開始更容易,但WPF中的所有元素都已綁定到Local´ObservableCollection<>
,這隻會弄亂界面。
謝謝你的回覆,雖然我有些失落,因爲我已經讀到,在我的情況下,我的選擇恰恰相反。我會回顧這些話題,然後回來。 – Gleno 2011-04-27 19:42:52
我的關係沒有變化,數據庫中也沒有刪除。我將在今天晚些時候開始另一個問題,並試圖解釋爲什麼我不能有一個短暫的DbContext。我真的希望你能夠接受一些有價值的投入。 – Gleno 2011-05-09 10:19:11