将关系数据库存储为XML

时间:2009-06-03 20:22:24

标签: c# .net xml wcf entity-framework

我必须将关系数据(文本,数字和图片)存储到XML文件中。我想维护数据和表结构之间的关系。

我该怎么做?

我的Windows Mobile应用程序使用Windows Communication Foundation(WCF)来获取数据。获得数据后,它将它们存储到XML文件中。

WCF使用ADO.NET Entity Framework进行数据检索。

我将使用SQL Server 2008。

数据将用于在应用程序上显示它。我不想使用SQL Server CE来存储数据,因为它的速度较慢。也许,我可以使用文本普通文件来存储文本和数字,而不是使用XML文件来存储图像。

简而言之,XML将是一种使用SQL Server CE或WCF来存储数据的方法。

谢谢!

6 个答案:

答案 0 :(得分:1)

虽然需要的是有点模棱两可,但您可以尝试在SQL Server下查看“FOR XML EXPLICIT”。这将包括关系。链接:http://www.eggheadcafe.com/articles/20030804.asp

答案 1 :(得分:1)

数据集怎么样?定义表和关系,将数据加载到数据集中,并将其另存为XML(WriteXml方法)

答案 2 :(得分:1)

将XML格式定义为XSD。如果使用Visual Studio,则使用添加新的DataSet,“自定义工具”将自动创建基于DataSet的强类型类。您可以使用约束定义表和关系。在Visual Studio中很容易做到。如果您厌恶Visual Studio,可以手动创建XSD并使用xsd.exe生成代码。

一旦你有强类型的数据集填充了数据,你可以通过调用WriteXml将它序列化为XML流。

答案 3 :(得分:1)

感谢您提供更多细节。

我的建议是,首先尝试SQL Server CE。对于你正在做的事情,它实际上可能并不慢。保存在不重新发明轮子的时间可能会更好地用于加速应用程序的其他部分。

对于其余部分,假设您不需要长时间存储数据,也不需要对其进行多少操作,我建议将数据从Web Service返回类型复制到DataSet中。 DataSet类型有一个可以保存数据的WriteXml方法,以及一个可以读回来的ReadXml方法。

答案 4 :(得分:0)

您使用的SQL Server是什么?某些服务器允许您为查询请求XML响应。这可以为你节省很多工作。

编辑:既然您已经指定使用MSSQL 2008,那么您可能会很幸运。在MSSQL 2005及更高版本中,有一个“FOR XML”关键字,允许您以XML格式获取结果。试一试。

答案 5 :(得分:0)

你是什么意思,“维护数据和表格结构之间的关系”?您是否在谈论的不仅仅是在XML节点的属性中维护源数据库记录的ID?一旦拥有了XML数据,您需要做什么?它是否会被编辑并且必须重新应用于数据库?

问题多于我的答案....抱歉。