如果我尝试序列化一个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