最近我問了一個問題(CRUD operations with connected POCOs instead of disconnected POCOs in EF code first),並基於這個和這個評論(CRUD operations with connected POCOs instead of disconnected POCOs in EF code first),現在我想在我的項目中使用連接POCOs
,所以我有另一個問題。在EF代碼中的DbContext的生命週期在WinForm項目中首先
但是我想,如果我使用視圖模型,當我使用的DbContext
實例從數據庫獲取我的數據,並將它們映射到的意見,當我想持久性用戶的變化,DbContext
所述先前實例(即取的數據)現在不存在(因爲例如當我從我的DAL調用GetOrders()
,DbContext
創建並處理),所以我應該在客戶端管理我的POCOs
狀態,並將它們複製回新創建的DbContext(位於我的DAL的SaveOrder()
中)。
我正確嗎?
你是對的。您處於「MVC範式」中:視圖是winform和控制器,功能上等同於Web服務器,通過DTO從單獨的程序集調用。 (儘可能經常)。控制器是DAL和域之間的鏈接(即業務邏輯),域本身就是另一個組件。集會的分離不是必須的,但它可以幫助保持好的地方。 (這裏很可能是主觀的) – tschmit007
@ tschmit007那麼我該如何解決這個問題?(丟失連接的實體狀態) – Masoud
通常我給連接字符串作爲屬性給我的表單。形成連接字符串,你可以做任何事情,包括instanciate上下文。對於國家來說,就像你在網絡環境中做的一樣。 – tschmit007