2011-05-12 264 views
0

嗨,我正在開發一個EF 4項目。 我想實現POCO自我跟蹤是否需要實施wcf服務? 我遇到修改實體的問題,因爲更改不會持久保存到數據庫。實體框架4 POCO自我跟蹤

在此先感謝。

回答

0

沒有你不需要的服務,但如果你不使用的服務,您應該手動自我跟蹤實體說我在another answer解釋自我跟蹤實體的目的,它必須開始通過調用StartTracking

跟蹤更改。如果您不需要從上下文中分離自我跟蹤實體,則應使用POCO。附加的自我跟蹤實體可以作爲POCO使用,但它會丟失一些功能 - 例如延遲加載,因爲自動跟蹤實體未被代理。

只有當您控制客戶端和客戶端使用.NET編寫時,對WCF使用自我跟蹤實體纔有意義。我還在another answer中描述過這一點。

你可能不需要STE。

+0

感謝您的回答。經過大量的混亂。我通過調用context.DetectChanges()來對問題進行排序。我發現StartTracking&MarkAsModified()不起作用,但是這解決了它。我只需要調用DetectChanges()並且不需要StartTracking&MarkAsModified()。你知道MarkAsModified()和DetectChanges()之間的區別。謝謝 – markpcasey 2011-05-12 11:10:33

+0

你如何使用自我跟蹤實體? 'DetectChanges'只有在實體沒有脫離上下文的情況下才起作用,在這種情況下,不需要自我跟蹤實體。 – 2011-05-12 11:26:17

+0

謝謝。我正在使用Repository&UnitofWork模式。我不清楚,並認爲自我跟蹤是必要的。通過您的反饋,POCO會很好。你會推薦離開自我跟蹤POCO到位,所以如果我決定通過WCF公開我可以嗎? – markpcasey 2011-05-12 12:31:05