Benutzer mit den meisten Antworten
Speicherung Rekursiv-Hierarischer Daten (Baum)

Frage
-
Hallo,
Ich bin auf der suche nach einer Möglichkeit hierarchische Daten lokal in einer Datei abzuspeichern, mein Ansatz war das ganze mit Sqlite und Entity Framework zu machen. Diese Möglichkeit lässt mich allerdings nicht automatisch eine neue Datei erzeugen wenn ich das richtig verstanden hab, weil das Framework Migration für Sqlite nicht unterstützt.
Meine Frage: Gibt es ein Format/Framework, mit dem das möglich ist? Es muss keine Datenbank sein.
MFG Simon
P.s. Das ganze in C#
Antworten
-
Hallo,
wie viele Daten willst du denn abspeichern? Wenn die Datenmengen überschaubar bleiben würde ich dir eine XML-Datei empfehlen. Diese hat von sich aus schon einen hierarchischen Aufbau und der Zugriff kann sehr einfach über XML to LINQ erfolgen.In dem verlinkten MSDN Artikel findest du auch jede Menge Beispiele, die es dir sehr einfach machen sollten dort einzusteigen.
Zur Laufzeit hast du die Möglichkeit alle Daten als Klassenkonstrukt abzuspeichern. Dafür könntest du beispielsweise die Daten einfach Serialisieren. Das kommt dem EF auch sehr nahe. Ein Beispiel dazu findest du unter Beispiele für die XML-Serialisierung. Über die Dort gezeigten Klassen kannst du dir das manuelle Auslesen über XML to LINQ sparen, das macht .NET für dich.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 9. Februar 2015 07:58
- Als Antwort markiert Aleksander Chalabashiev Dienstag, 17. Februar 2015 13:51
-
Hi,
mir sind 2 Techniken bekannt, die so etwas ermöglichen: 1. XML, 2. Fremdschlüssel zur eigenen Tabelle/Liste.Zu XML hat Dir Tom bereits geschrieben.
Fremdschlüssel zur eigenen Tabelle/Liste müssen im Programmcode organisiert werden. Wichtig dabei sind Festlegungen zum Abbruch der Rekursion (letzter Knoten im Baum). Die einfachste Lösung dazu ist ein konkreter Inhalt des Fremdschlüssels - Dummy-Knoten, null/Nothing oder nicht referenzierter Wert (z.B. 0 oder negativ). Eine derartige Darstellung kann man auch problemlos in einer relationalen Tabelle ablegen, z.B. auch in einer Datenbank.
--
Peter- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 9. Februar 2015 07:58
- Als Antwort markiert Aleksander Chalabashiev Dienstag, 17. Februar 2015 13:51
Alle Antworten
-
Hallo,
wie viele Daten willst du denn abspeichern? Wenn die Datenmengen überschaubar bleiben würde ich dir eine XML-Datei empfehlen. Diese hat von sich aus schon einen hierarchischen Aufbau und der Zugriff kann sehr einfach über XML to LINQ erfolgen.In dem verlinkten MSDN Artikel findest du auch jede Menge Beispiele, die es dir sehr einfach machen sollten dort einzusteigen.
Zur Laufzeit hast du die Möglichkeit alle Daten als Klassenkonstrukt abzuspeichern. Dafür könntest du beispielsweise die Daten einfach Serialisieren. Das kommt dem EF auch sehr nahe. Ein Beispiel dazu findest du unter Beispiele für die XML-Serialisierung. Über die Dort gezeigten Klassen kannst du dir das manuelle Auslesen über XML to LINQ sparen, das macht .NET für dich.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 9. Februar 2015 07:58
- Als Antwort markiert Aleksander Chalabashiev Dienstag, 17. Februar 2015 13:51
-
Hi,
mir sind 2 Techniken bekannt, die so etwas ermöglichen: 1. XML, 2. Fremdschlüssel zur eigenen Tabelle/Liste.Zu XML hat Dir Tom bereits geschrieben.
Fremdschlüssel zur eigenen Tabelle/Liste müssen im Programmcode organisiert werden. Wichtig dabei sind Festlegungen zum Abbruch der Rekursion (letzter Knoten im Baum). Die einfachste Lösung dazu ist ein konkreter Inhalt des Fremdschlüssels - Dummy-Knoten, null/Nothing oder nicht referenzierter Wert (z.B. 0 oder negativ). Eine derartige Darstellung kann man auch problemlos in einer relationalen Tabelle ablegen, z.B. auch in einer Datenbank.
--
Peter- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 9. Februar 2015 07:58
- Als Antwort markiert Aleksander Chalabashiev Dienstag, 17. Februar 2015 13:51