如果我嘗試序列化一個linq-to-sql實體,它會默認序列化只有原始字段還是會嘗試訪問關係字段?如果它試圖抓取關係字段,有沒有辦法來覆蓋這個?linq-to-sql實體序列化開箱即用嗎?
0
A
回答
0
你正在使用哪個序列化程序?
- DataContractSerializer的將 包括加載關係而不是 那些尚未加載/空。
- 如果XmlSerializer是雙向的(即實體A指向實體B,而實體B又指向後面),則XmlSerializer傾向於扼殺關係。
- 二進制格式化器......我從來沒有找到一個能夠正確處理與其他實體有關係的L2S實體對象。因爲我試過了,所以也許我只是做了錯誤的很長一段時間...
0
還有一點要添加到接受的答案:
的關係不屬於集合將不會被DataContractSerializer的序列化(無論它們是否已加載),因爲從.dbml
文件中沒有爲它們生成DataMember
屬性。
I found here解釋由當時在微軟丹尼爾·西蒙斯:
這裏的問題是,到SP1之前有真的DataContract序列沒有好的辦法來處理有周期的對象的圖形。作爲LINQ to SQL的一個結果,作出了折衷決定,允許用戶選擇單向序列化,並且僅序列化不引用的集合。如果你真的想要序列化一個引用(比如上面的場景),這種機制並不適用,但它至少可以幫助你解決一些常見的場景。
在SP1中向WCF添加了新的支持,該支持使DataContract序列化能夠處理週期,但您必須通過更改DataContract的某些屬性並可能對您的集合和引用類實現進行更改以正確處理序列化,特別是WCF的反序列化行爲。在實體框架中進行了更改,以利用這些新功能,因爲它尚未發佈其第一個版本,但Linq to SQL僅在sp1中進行了小型服務包升級,並且未對其進行修改以利用此功能能力。
我還沒有在L2S上做過這方面的實驗,但是可能會生成自己的類,它們可以與L2S一起使用,並且可以正確支持帶週期的WCF序列化。
丹尼
相關問題
- 1. linqtosql對象是可序列化的嗎?
- 2. LINQtoSQL和序列化
- 3. Authlogic,開箱即安全嗎?
- 4. 任何.NET ORM是否支持開箱即用的本地化實體?
- 5. 實體框架(實體類)序列化
- 6. 實體Fremework序列化
- 7. StackOverflowException序列化.netTiers實體
- 8. 序列化POCO實體
- 9. 序列化相關實體
- 10. 序列化translateble實體
- 11. Sharepoint開箱即用功能
- 12. Logback:開箱即用屬性
- 13. LinqToSql篩選器實體集
- 14. 實體框架比LinqToSql慢
- 15. 我可以使用JDO將實體序列化爲byte []嗎?
- 16. 使用DTO vs序列化實體
- 17. 使用WCF序列化linq實體
- 18. LinqToSql引用的實體會拋出NullReferenceException
- 19. 在PHP中使用'@'是一個開箱即用的選項嗎?
- 20. SharePoint可以用作開箱即用的BPM工具嗎?
- 21. 如何使這個實體序列化/反序列化?
- 22. html5視頻支持flv開箱即用手機(symbian,android,iphone)嗎?
- 23. vs2010有一個開箱即用的嚮導創建控件嗎?
- 24. PrestoDB緩存內部開箱即用的中間結果嗎?
- 25. Autoconf:默認的開箱即用優化與交叉編譯
- 26. 我無法啓動開箱即用的RedHat保險絲實例
- 27. Can not Jackson序列化Hibernate實體
- 28. 與反序列化的關係實體
- 29. XML序列化實體對象
- 30. 實體框架POCO序列化
我還沒有決定串行然而,我希望他們中的一個有選擇或默認情況下並沒有試圖在所有遍歷關係屬性。我打算先嚐試System.Xml.Serialization.XmlSerializer。 – Maslow 2009-09-23 15:28:28
好的。 DataContractSerializer是使用L2S生成的實體類的最佳選擇。如果你想排除任何已經加載的關係,你需要將它們清空或者關聯關聯屬性上的datamember屬性... – KristoferA 2009-09-23 15:55:48