0
A
回答
1
自我跟蹤實體是序列化的,因此最簡單的方式來獲得該實體的深克隆(深克隆=圖表的克隆)是使用DataContractSerializer
和序列化和反序列化立即它。反序列化的實體將成爲您圖的克隆。
0
當你說「克隆」,你的意思是創建一個可持久的,或者只是創建另一個「瞬時」實體是同一實體的內存拷貝一個新的實體?
如果你想在內存中的副本,您可以隨時創建實體類的新實例,並複製領域。對它的更改將不會被跟蹤,因爲您沒有告知關於它的上下文。
var newInstance = new SomeEntity() { SomeProperty = oldInstance.SomeProperty };
如果您想要創建一個新的實體將被持久化,那麼只需執行正常操作即可插入新記錄。例如: -
context.SomeEntities.Add(newInstance);
你不能在邏輯上進行整體拷貝,跟蹤變化,但指的是相同的實例。你會選擇哪個版本的對象?
+0
我想堅持深層克隆不僅僅是在內存中複製 – user440916
+0
@ user440916:然後看看我提供的代碼的第二位,它將內存中的副本作爲數據庫中的另一個條目存在。 –
相關問題
- 1. 合併自追蹤實體
- 2. EF 4自追蹤實體無法按預期工作
- 3. 克隆Phonecall實體
- 4. 在NHibernate中克隆實體?
- 5. 將克隆的EF實體保存到數據庫的問題
- 6. Silverlight自追蹤實體與RIA服務
- 7. 我可以在實體框架4.1中使用自追蹤實體和DBContext嗎?
- 8. 克隆實體框架POCO
- 9. 工作進行中/實體克隆
- 10. 與自我跟蹤實體具有相同密鑰的兩個實體的EF 4.0錯誤
- 11. 使用一組導致性能問題的自追蹤實體
- 12. Git自動跟蹤分支克隆
- 13. N層應用程序上的實體框架自追蹤實體
- 14. 克隆複合體Hibernate實體
- 15. 如何將TFS追蹤添加到GIT-TFS克隆的回購?
- 16. jQuery多次追加克隆
- 17. 自我跟蹤實體與POCO實體
- 18. 未映射POCO或自追蹤實體中的屬性
- 19. Hibernate實體的深度克隆
- 20. 無序列化的深克隆實體
- 21. EF6實體的通用克隆
- 22. 使用EF6的深度克隆實體
- 23. 克隆()身體深度克隆?
- 24. WCF,Silverlight 5,自追蹤實體和(de)序列化
- 25. 實體克隆和清除引用
- 26. 實體對象:克隆和插入
- 27. Symfony2實體克隆不起作用
- 28. 如何克隆實體間關係?
- 29. 在表中克隆和追加行
- 30. 具有相關實體的深克隆主義實體
我可能是錯的,但我相信這將開始從數據庫中提取數據,而不是限制的數據給你明確質疑,因爲它會按照無限制的方式所有的導航性能。無論你喜不喜歡,你都會得到整個對象圖。 –
@Merlyn:這對於真正的STE不會發生,因爲它們不支持惰性編碼來避免這個問題。有了POCO,您必須關閉代理創建才能完成這項工作。基於EntityObject的實體也支持開箱即用,因爲它們是以序列化的方式生成的。 –
「真實」是什麼意思?就像「真正的男人不使用這個特徵」,或者它可能是一種毫無價值/有害的特徵?或者是其他東西?你能提供一個參考嗎?沒有挑戰你,我在這裏學習:) –