2009-06-03 15 views
1

Ich muss relationale Daten (Text, Zahlen und Bilder) in einer XML-Datei speichern. Ich möchte die Beziehung zwischen Daten und der Tabellenstruktur beibehalten.Store relationale Datenbank als XML

Wie gehe ich um das zu tun?

Meine Windows Mobile-Anwendung verwendet Windows Communication Foundation (WCF) zum Abrufen von Daten. Sobald es die Daten erhält, speichert es sie in einer XML-Datei.

Die WCF verwenden ADO.NET Entity Framework zum Abrufen von Daten.

Ich werde SQL Server 2008.

die Daten verwenden, wird es nützlich sein auf Anfrage zu zeigen. Ich möchte SQL Server CE nicht verwenden, um Daten zu speichern, da es langsamer ist. Vielleicht kann ich anstelle von XML-Dateien Text-Plain-Dateien zum Speichern von Texten und Zahlen und Bilddateien zum Speichern von Bildern verwenden.

Kurz gesagt, XML wird eine Möglichkeit sein, die Daten stattdessen mit SQL Server CE oder WCF zu speichern.

Vielen Dank!

+0

Sie müssen klarer sein. Wo möchten Sie in XML konvertieren - im Dienst oder in der Anwendung, die den Dienst aufruft? Verwendet der Dienst Entity Framework oder die Anwendung, die den Dienst aufruft? Was machen Sie mit den Daten, nachdem sie in XML konvertiert wurden? –

+0

Ich lege mehr Details. – VansFannel

Antwort

1

Danke für das zusätzliche Detail.

Mein Vorschlag ist zuerst, versuchen Sie SQL Server CE. Es ist möglicherweise nicht wirklich langsamer für das, was Sie tun. Die Zeit, die Sie einsparen, um das Rad nicht neu zu erfinden, könnte besser dafür verwendet werden, andere Teile Ihrer Anwendung zu beschleunigen.

Im übrigen, vorausgesetzt, Sie müssen die Daten nicht lange speichern, noch viel damit tun, würde ich vorschlagen, die Daten aus dem Web-Service-Rückgabetyp in ein DataSet zu kopieren.Der DataSet-Typ verfügt über eine WriteXml-Methode, mit der die Daten gespeichert werden können, und eine ReadXml-Methode, mit der sie zurückgelesen werden kann.

+0

Ok, ich werde SQL Server CE verwenden. Vielen Dank! – VansFannel

0

Welchen SQL Server verwenden Sie? Auf einigen Servern können Sie eine XML-Antwort für eine Abfrage anfordern. Das könnte dir viel Arbeit ersparen.

EDIT: Da Sie angegeben haben, dass Sie MSSQL 2008 verwenden werden, können Sie Glück haben. In MSSQL 2005 und höher gibt es ein "FOR XML" -Schlüsselwort, mit dem Sie Ergebnisse als XML erhalten können. Versuche es.

+0

Ich werde SQL Server 2008 verwenden. – VansFannel

0

Was meinen Sie mit "die Beziehung zwischen Daten und der Tabellenstruktur beibehalten"? Sprechen Sie mehr als nur die ID eines Quellendatenbankeintrags in einem Attribut eines XML-Knotens? Was müssen Sie mit den XML-Daten tun, wenn Sie sie einmal haben? Wird es bearbeitet und muss erneut auf die Datenbank angewendet werden?

Mehr Fragen als Antworten von mir .... Entschuldigung.

1

Was ist mit einem Datensatz? Definieren Sie die Tabellen und Relationen, laden Sie die Daten in das Dataset und speichern Sie sie als XML (WriteXml-Methode)

1

Definieren Sie Ihr XML-Format als XSD. Wenn Sie Visual Studio verwenden, fügen Sie neues DataSet hinzu, und das "benutzerdefinierte Tool" erstellt automatisch eine stark typisierte Gruppe von Klassen basierend auf DataSet. Sie können Tabellen und Beziehungen mit Einschränkungen definieren. Es ist einfach in Visual Studio zu tun. Wenn Sie Visual Studio abgeneigt sind, können Sie das XSD manuell erstellen und xsd.exe verwenden, um Ihren Code zu generieren.

Sobald Sie das strong-type DataSet mit Daten gefüllt haben, können Sie es durch Aufruf von WriteXml in einen XML-Stream serialisieren.

Verwandte Themen