簡體   English   中英

WPF + EF:綁定實體並跟蹤來自不同上下文的更改

[英]WPF + EF: binding an entity and track changes from different contexts

我有一個使用實體框架和兩個視圖的WPF應用程序:

  • ProductsListView
  • ProductEditView

考慮以下情形:

  1. 打開ProductListView :實例化DbContext,填充產品列表,並關閉DbContext
  2. 用戶選擇一種產品,然后單擊編輯按鈕。
  3. 打開ProductEditView :實例化一個DbContext,通過其ID加載產品,填充字段並關閉DbContext
  4. 用戶更改字段並單擊“保存”按鈕:實例化一個DbContext ,按其ID加載產品,應用更改並關閉DbContext

如何通知產品列表中所選產品的綁定?


在內存環境中:

  1. 我只是將產品對象從ProductListView傳遞給ProductEditView
  2. 我將字段綁定到ProductEditViewModel屬性,
  3. 單擊保存按鈕后,我將更新產品參考。

因為是相同的參考,所以我不需要對要更新的產品列表做任何事情。


我看不到如何使用EF上下文執行相同的操作。

有任何建議嗎?

在EF上下文中,建議您在所有4個操作中都保留DbContext。 這將為您節省很多麻煩。

除非您的產品數據非常大,並且您僅檢索標題和id,否則請在初始列表訪存中說出來,然后從打開EditView直到關閉它,保持相同的DbContext打開。 如果他們保存,EF會找到更改。

它通過比較從數據庫中檢索到的值與當前為實體設置的值來查找更改。 通過關閉實體上下文,您將擺脫OriginalValues

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM