Programování

Jak pracovat s LiteDB v C #

LiteDB je rychlá, jednoduchá, integrovaná databáze NoSQL s nulovou konfigurací pro .Net. Je to dobrá volba pro jednoduché aplikace (webové, mobilní nebo stolní), kde možná budete potřebovat jeden datový soubor na uživatele, ale nemusíte podporovat mnoho souběžných operací zápisu. Tento článek představuje přehled toho, jak můžeme s touto databází pracovat pomocí C #.

Než začneme používat LiteDB, podívejme se na některé z konceptů. LiteDB pracuje s dokumenty a sbírkami. Dokumenty se používají k ukládání a načítání dat do az datového souboru. Všimněte si, že vaše definice dokumentu může být buď třída POCO, nebo třída BsonDocument. Ať tak či onak, LiteDB převede váš dokument do formátu BSON, než bude uložen v databázi.

LiteDB organizuje dokumenty v úložištích dokumentů známých jako sbírky. Mimochodem, každá kolekce je identifikována jedinečným názvem a obsahuje jeden nebo více dokumentů, které sdílejí stejné schéma. Chcete-li pracovat s dokumenty, můžete využít metody kolekce. Zde je seznam metod, které můžete použít:

  • Vložit—Používá se k přidání nového dokumentu do sbírky
  • Aktualizace—Používá se k aktualizaci existujícího dokumentu
  • Vymazat—Používá se k odstranění dokumentu
  • FindById nebo Nalézt—Slouží k dotazování dokumentu
  • Zahrnout—Použije se k naplnění vlastností z jiných kolekcí
  • EnsureIndex—Používá se k vytvoření nového indexu, pokud neexistuje

Protože LiteDB je databáze bez serveru, nemusíte ji do systému instalovat. Jednoduše přidáte odkaz na soubor LiteDB.dll ve vašem projektu. Alternativně můžete LiteDB nainstalovat pomocí Správce balíčků NuGet v sadě Visual Studio nebo zadáním následujícího příkazu v nástroji příkazového řádku NuGet Package Manager.

> Instalační balíček LiteDB

Vytvořte třídu POCO v LiteDB v C #

Vytvořte nový projekt konzolové aplikace v sadě Visual Studio a uložte jej se jménem. Pojďme nyní vytvořit třídu POCO, kterou použijeme k vytvoření dokumentu se silným typem. Všimněte si, že bychom měli mít Id pojmenovaná vlastnost v naší třídě pro práci s LiteDB. Alternativně můžeme také jakoukoli vlastnost v naší třídě vyzdobit pomocí [BsonId] atribut. Tady je Autor třídy, kterou bychom použili v tomto příkladu.

veřejná třída Autor

    {

public int Id {get; soubor; }

public string FirstName {get; soubor; }

veřejný řetězec Příjmení {get; soubor; }

    }

The Id vlastnost by měla být jedinečná a ne null. Pokud necháte vlastnost Id prázdnou, LiteDB automaticky vygeneruje Id při vkládání záznamu.

Vložte záznam do LiteDB v C #

Následující fragment kódu lze použít k vytvoření nového Autor instance a vložte záznam.

pomocí (var db = new LiteDatabase (connectionString))

    {

var collection = db.GetCollection („autoři“);

var autor = nový autor

         {

Jméno,

Příjmení,

Adresa

          };

collection.Insert (autor);

     }

Viz výše uvedený fragment kódu. Všimněte si, jak nová instance LiteDatabase je vytvořen předáním připojovacího řetězce jako parametru. Následující příkaz načte kolekci nebo vytvoří novou kolekci, pokud žádná neexistuje. Volání do Vložit metoda na instanci kolekce automaticky generuje hodnotu Id vlastnost a vloží dokument do databáze.

Dotaz LiteDB v C #

Nyní, když jste do databáze vložili nový záznam, můžete jej dotazovat, jak je znázorněno v úryvku kódu níže.

pomocí (var db = new LiteDatabase (connectionString))

   {

var collection = db.GetCollection („autoři“);

var autor = kolekce.FindById (1);

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

   }

Všimněte si, že FindById metoda vrací dokument podle jeho Id nebo index primárního klíče. Index můžete explicitně vytvořit pomocí EnsureIndex metoda, jak je uvedeno níže.

autoři.EnsureIndex („křestní jméno“);

Aktualizujte dokument v LiteDB v C #

Aktualizace dokumentu je jednoduchá. Jednoduše změníte hodnoty vlastnosti a poté zavoláte Aktualizace metoda na instanci kolekce, jak je znázorněno níže.

var autor = kolekce.FindById (1);

autor. adresa;

collection.Update (autor);

Pokud chcete najít všechny autory, kteří žijí na konkrétním místě, můžete použít následující dotaz.

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

Existuje další třída s názvem LiteRepository což usnadňuje provádění operací CRUD. Zde je příklad, který ukazuje, jak můžete tuto třídu používat.

pomocí (var db = new LiteRepository (connectionString))

            {

db.Insert (nový autor

{ Jméno Příjmení,

Adresa });

            }

Práce se soubory v LiteDB

LiteDB poskytuje FileStorage kolekce pro práci se soubory. Nahrávání nebo stahování souborů je jednoduché. Vše, co musíte udělat, je zavolat příslušnou metodu na FileStorage kolekce, jak je uvedeno v úryvcích kódu níže. Nahrání souboru:

db.FileStorage.Upload („Author-Photo“, @ „C: \ Temp \ Joydip.jpg“); // Nahraje soubor do databáze
Stažení souboru:
db.FileStorage.Download („Autor-Fotografie“, @ „C: \ Joydip.jpg“); // Stáhne soubor do systému souborů

Je třeba poznamenat, že LiteDB vytváří dvě kolekce pro práci se soubory. Tyto zahrnují _soubory a _chunks. Sbírka _files obsahuje informace související s metadaty souboru a _chunks obsahuje data, která jsou příslušně rozdělena pro úložiště.

$config[zx-auto] not found$config[zx-overlay] not found