So arbeiten Sie mit LiteDB in C #

LiteDB ist eine schnelle, einfache, konfigurationsfreie, eingebettete NoSQL-Datenbank für .Net. Es ist eine gute Wahl für einfache Anwendungen (Web, Mobile oder Desktop), bei denen Sie möglicherweise eine Datendatei pro Benutzer benötigen, aber nicht viele gleichzeitige Schreibvorgänge unterstützen müssen. Dieser Artikel bietet einen Überblick darüber, wie wir mit dieser Datenbank mit C # arbeiten können.

Bevor wir mit LiteDB beginnen, werfen wir einen Blick auf einige der Konzepte. LiteDB arbeitet mit Dokumenten und Sammlungen. Dokumente werden zum Speichern und Abrufen von Daten in und aus einer Datendatei verwendet. Beachten Sie, dass Ihre Dokumentdefinition entweder eine POCO-Klasse oder eine BsonDocument-Klasse sein kann. In beiden Fällen konvertiert LiteDB Ihr Dokument in das BSON-Format, bevor es in der Datenbank gespeichert wird.

LiteDB organisiert die Dokumente in Dokumentenspeichern, die als Sammlungen bezeichnet werden. Im Übrigen wird jede Sammlung durch einen eindeutigen Namen identifiziert und enthält ein oder mehrere Dokumente, die dasselbe Schema verwenden. Um mit Dokumenten zu arbeiten, können Sie die Methoden der Sammlung nutzen. Hier ist die Liste der Methoden, die Sie verwenden können:

  • Insert- Wird verwendet, um der Sammlung ein neues Dokument hinzuzufügen
  • Update- Wird zum Aktualisieren eines vorhandenen Dokuments verwendet
  • Delete- wird zum Löschen eines Dokuments verwendet
  • FindByIdoder Find- wird zum Abfragen eines Dokuments verwendet
  • Include- Wird zum Auffüllen von Eigenschaften aus anderen Sammlungen verwendet
  • EnsureIndex- Wird verwendet, um einen neuen Index zu erstellen, wenn dieser nicht vorhanden ist

Da LiteDB eine Datenbank ohne Server ist, müssen Sie sie nicht auf Ihrem System installieren. Sie fügen einfach einen Verweis auf die Datei LiteDB.dll in Ihrem Projekt hinzu. Alternativ können Sie LiteDB über den NuGet Package Manager in Visual Studio oder durch Eingabe des folgenden Befehls im NuGet Package Manager-Befehlszeilentool installieren.

> Install-Package LiteDB

Erstellen Sie eine POCO-Klasse in LiteDB in C #

Erstellen Sie ein neues Konsolenanwendungsprojekt in Visual Studio und speichern Sie es unter einem Namen. Lassen Sie uns nun eine POCO-Klasse erstellen, mit der wir ein stark typisiertes Dokument erstellen. Beachten Sie, dass wir Idin unserer Klasse eine benannte Eigenschaft haben sollten , um mit LiteDB arbeiten zu können. Alternativ können wir auch jede Eigenschaft in unserer Klasse mit dem [BsonId]Attribut dekorieren . Hier ist die AuthorKlasse, die wir in diesem Beispiel verwenden würden.

öffentliche Klasse Autor

    {

        public int Id {get; einstellen; }}

        öffentliche Zeichenfolge Vorname {get; einstellen; }}

        öffentlicher String Nachname {get; einstellen; }}

    }}

Die IdEigenschaft sollte eindeutig und nicht null sein. Wenn Sie die ID-Eigenschaft leer lassen, generiert LiteDB Idbeim Einfügen eines Datensatzes automatisch die .

Fügen Sie einen Datensatz in LiteDB in C # ein

Mit dem folgenden Codeausschnitt können Sie eine neue AuthorInstanz erstellen und einen Datensatz einfügen.

using (var db = neue LiteDatabase (connectionString))

    {

       var collection = db.GetCollection ("Autoren");

       var author = neuer Autor

         {

             Vorname,

             Familienname, Nachname,

             Adresse

          };

         collection.Insert (Autor);

     }}

Siehe den obigen Code-Ausschnitt. Beachten Sie, wie eine neue Instanz von LiteDatabaseerstellt wird, indem die Verbindungszeichenfolge als Parameter übergeben wird. Die folgende Anweisung ruft eine Sammlung ab oder erstellt eine neue Sammlung, falls keine vorhanden ist. Der Aufruf der InsertMethode in der Auflistungsinstanz generiert automatisch den Wert der IdEigenschaft und fügt das Dokument in die Datenbank ein.

Fragen Sie LiteDB in C # ab

Nachdem Sie einen neuen Datensatz in die Datenbank eingefügt haben, können Sie ihn abfragen, wie im folgenden Codeausschnitt gezeigt.

using (var db = neue LiteDatabase (connectionString))

   {

     var collection = db.GetCollection ("Autoren");

     var author = collection.FindById (1);

     Console.WriteLine (author.FirstName + "\ t" + author.LastName);

   }}

Beachten Sie, dass die FindByIdMethode das Dokument anhand seines Idoder des Primärschlüsselindex zurückgibt . Sie können einen Index explizit mit der EnsureIndexunten gezeigten Methode erstellen .

Autoren.EnsureIndex ("Vorname");

Aktualisieren Sie ein Dokument in LiteDB in C #

Das Aktualisieren eines Dokuments ist einfach. Sie ändern einfach die Eigenschaftswerte und rufen dann die UpdateMethode für die Auflistungsinstanz wie unten gezeigt auf.

var author = collection.FindById (1);

author.Address;

collection.Update (Autor);

Wenn Sie alle Autoren finden möchten, die an einem bestimmten Ort leben, können Sie die folgende Abfrage verwenden.

var results = collection.Find (x => x.Address.Contains ("Hyderabad"));

Es gibt eine andere Klasse namens LiteRepository, die das Ausführen von CRUD-Operationen etwas erleichtert. Hier ist ein Beispiel, das zeigt, wie Sie diese Klasse verwenden können.

using (var db = neues LiteRepository (connectionString))

            {

                db.Insert (neuer Autor

               { Vorname Nachname,

               Adresse });

            }}

Arbeiten mit Dateien in LiteDB

LiteDB bietet die FileStorageSammlung für die Arbeit mit Dateien. Das Hochladen oder Herunterladen von Dateien ist einfach. Sie müssen lediglich die entsprechende Methode für die FileStorageSammlung aufrufen, wie in den folgenden Codeausschnitten gezeigt. So laden Sie eine Datei hoch:

db.FileStorage.Upload ("Author-Photo", @ "C: \ Temp \ Joydip.jpg"); // Lädt eine Datei in die Datenbank hoch
So laden Sie eine Datei herunter:
db.FileStorage.Download ("Author-Photo", @ "C: \\ Joydip.jpg"); // Lädt eine Datei in das Dateisystem herunter

Es ist zu beachten, dass LiteDB zwei Sammlungen erstellt, um mit Dateien zu arbeiten. Dazu gehören _filesund _chunks. Die _files-Auflistung enthält Informationen zu den Metadaten der Datei sowie _chunksDaten, die für die Speicherung entsprechend aufgeteilt sind.