XML-Repository-Implementierung

8

Ich suche nach einem einfachen Xml Repository (GetAll, Add, Update, Delete) Beispiel.

Jeder sagt: "Es ist eine gute Idee, das Repository-Muster zu verwenden, da Sie Ihren Datenspeicherort austauschen können ..." Jetzt muss ich meine Daten in einer XML-Datei speichern und weiß nicht, wie ein XML-Repository implementiert wird. Ich habe überall im Google gesucht und kann es nicht finden.

Wenn möglich, senden Sie ein Beispiel mit relationalem Datenhandle. Wie wenn Sie eine Produkteinheit in EF speichern und alle produktabhängigen Einheiten ebenfalls beibehalten werden.

    
Davi Fiamenghi 27.01.2011, 17:25
quelle

2 Antworten

8

Nun, Petter Lösung ist nett.

Nur um meine Implementierung zu teilen, werde ich meine Frage noch einmal beantworten, ich hoffe, dass das für jemanden nützlich sein kann. Bitte, bewerten und kommentieren.

%Vor%

Und die Basisklasse für XML-Repositories

%Vor%

Und zwei weitere abstrakte Klassen, eine für unabhängige Entitäten und andere für untergeordnete Entitäten. Um zu vermeiden, die Xml-Datei jedes Mal zu lesen, habe ich eine Art Cache-Steuerelement

gemacht %Vor%

Jetzt die Implementierung für untergeordnete Typen

%Vor%

Jetzt eine reale Implementierung

%Vor%

Und jetzt der XDocumentProvider. Seine Funktion besteht darin, den Zugriff auf die XML-Datei zu abstrahieren und für alle Repositorys zu vereinheitlichen, welches XDocument der Datenkontext ist. Dies kann UnitOfWork genannt werden ?

%Vor%

Dann kann ich viele Repositories für verschiedene Entitäten haben, die hängende Persistenzaktionen in einem einzigen Datenkontext hinzufügen.

Ich habe Tests für meine Anwendung durchgeführt, die dieses Repository mit Mocks verwendet und gut funktioniert hat.

Auf meiner IoC-Konfiguration muss ich den Standardwert für XDocumentProvider festlegen. Bei Bedarf können wir den XDocumentProvider throught-Konstruktor anstelle dieser statischen "Default" -Eigenschaft übergeben

Was halten Sie von meiner Implementierung?

Danke

    
Davi Fiamenghi 11.03.2011, 02:49
quelle
2

Ein Kollege und ich haben genau ein solches XML-Repository implementiert und es heißt XmlRepository : -).

Es wird intern mit linq to XML erstellt und der externe Zugriff ist ähnlich wie bei linq für nhibernate. Es ist mit linq zu Objekten gemacht, die Verwendung in Client-Code ist sehr einfach, einfach und schnell verständlich wegen der einfachen XML-kommentierte Schnittstelle.

Die aktuelle Version (Assembly) hat keine Unterstützung für Unterklassen oder 1: n Relationen, aber der aktuelle Entwicklungsquellcode, den Sie auch auf der obigen Seite finden können, hat beide eingebaut.

Es ist nicht komplett fertig zum Release - es könnte ein bisschen kleinere Bugs haben, aber probiere es aus, nimm den Quellcode und verbessere es, wenn du magst. Es ist Open Source.

Alle Kommentare, Wünsche, konstruktive Kritik und Patches für das Open-Source-Projekt (lese: einzige Quelle) werden meinen Kollegen (Golo Roden) und mich glücklich machen und das Projekt in einen besseren Zustand bringen.

Eine Beispielanwendung ist verfügbar hier (Text ist in Deutsch).

    
Peter Bucher 07.03.2011 14:19
quelle