我面临的挑战是编写一个对象持久化机制,将其序列化/反序列化到SQL数据库和XML文件。
为了便于说明,假设我有一个对象图,它只有一个根对象。例如,可能是一棵“树”,它有各种各样的子对象--树叶、苞叶、坚果、松鼠、鸟等等。
我需要一个建议的架构,无缝移动之间加载和保存“树”从文件和/或数据库。它需要能够从文件中加载“树”并将其保存到数据库中,或者反过来。
我目前正在使用Entity Framework来实现我的SQL持久化,我对此非常满意。对于XML,我使用了XDocument,我也很喜欢它,但是我想知道是不是有一些框架已经完成了所有这些工作。
发布于 2010-09-15 14:30:03
除非您想在Sql Server中对您的对象进行查询(或者有其他源可以更新/管理关系数据),否则使用EF转换为关系模式有点过分了。如果您想要的只是在不同的媒介上持久化您的对象图,那么您应该考虑运行时序列化或DataContractSerializer。实际上,您将获得二进制数据或XML,您可以将其转储到任何存储介质中,包括Sql Server。这将使您不必在对象结构更改时更改sql server中的关系架构。但是,在使用序列化方法时,您必须考虑对对象进行版本控制。
发布于 2010-09-15 04:35:54
您可以尝试使用较旧但非常好的XmlSerializer。
ps。在将序列化的对象加载到xml文件时,需要注意Entity Framework可能需要的任何内容。
发布于 2010-09-16 07:11:39
对于以XML格式保存的实体,有什么严格的要求吗?如果没有,当您需要本地/文件系统持久性时,另一种选择是将SQLite (http://sqlite.phxsoftware.com/)与实体框架一起使用。
https://stackoverflow.com/questions/3712368
复制相似问题