Programmering

Hvordan jobbe med LiteDB i C #

LiteDB er en rask, enkel, nullkonfigurert, innebygd NoSQL-database for .Net. Det er et godt valg for enkle applikasjoner (web, mobil eller desktop) der du kanskje trenger en datafil per bruker, men ikke trenger å støtte mange samtidige skriveoperasjoner. Denne artikkelen presenterer en oversikt over hvordan vi kan jobbe med denne databasen ved hjelp av C #.

Før vi begynner å bruke LiteDB, la oss ta en titt på noen av konseptene. LiteDB jobber med dokumenter og samlinger. Dokumenter brukes til å lagre og hente data til og fra en datafil. Merk at dokumentdefinisjonen din enten kan være en POCO-klasse eller en BsonDocument-klasse. Uansett vil LiteDB konvertere dokumentet til BSON-format før det lagres i databasen.

LiteDB organiserer dokumentene i dokumentbutikker kjent som samlinger. Forresten er hver samling identifisert med et unikt navn og inneholder ett eller flere dokumenter som har samme skjema. For å jobbe med dokumenter kan du dra nytte av metodene for samlingen. Her er listen over metodene du kan bruke:

  • Sett inn—Brukt for å legge til et nytt dokument i samlingen
  • Oppdater—Brukt til å oppdatere et eksisterende dokument
  • Slett—Brukt til å slette et dokument
  • FindById eller Finne—Brukt for å spørre et dokument
  • Inkludere—Brukt til å fylle ut eiendommer fra andre samlinger
  • EnsureIndex—Brukt til å opprette en ny indeks hvis den ikke eksisterer

Siden LiteDB er en serverfri database, trenger du ikke installere den på systemet ditt. Du legger bare til en referanse til LiteDB.dll-filen i prosjektet ditt. Alternativt kan du installere LiteDB via NuGet Package Manager i Visual Studio eller ved å skrive følgende kommando i NuGet Package Manager kommandolinjeverktøy.

> Install-Package LiteDB

Opprett en POCO-klasse i LiteDB i C #

Opprett et nytt konsollapplikasjonsprosjekt i Visual Studio og lagre det med et navn. La oss nå lage en POCO-klasse som vi vil bruke den til å lage et sterkt skrevet dokument. Merk at vi skal ha en Id kalt eiendom i klassen vår for å jobbe med LiteDB. Alternativt kan vi også dekorere alle eiendommer i klassen vår med [BsonId] Egenskap. Her er Forfatter klasse vi vil bruke i dette eksemplet.

offentlig klasse Forfatter

    {

offentlig int Id {get; sett; }

offentlig streng Fornavn {get; sett; }

offentlig streng Etternavn {get; sett; }

    }

De Id eiendommen skal være unik og ikke null. Hvis du lar Id-egenskapen være tom, vil LiteDB automatisk generere Id når du setter inn en plate.

Sett inn en post i LiteDB i C #

Følgende kodebit kan brukes til å lage en ny Forfatter forekomst og sett inn en post.

bruker (var db = ny LiteDatabase (connectionString))

    {

var samling = db.GetCollection (“forfattere”);

var forfatter = ny forfatter

         {

Fornavn,

Etternavn,

Adresse

          };

samling. Sett inn (forfatter);

     }

Se kodebiten ovenfor. Legg merke til hvordan en ny forekomst av LiteDatabase opprettes ved å sende tilkoblingsstrengen som en parameter. Følgende uttalelse henter en samling eller oppretter en ny samling hvis ingen finnes. Samtalen til Sett inn Metoden på samlingsforekomsten genererer automatisk verdien av Id eiendom og setter dokumentet inn i databasen.

Spørring LiteDB i C #

Nå som du har satt inn en ny post i databasen, kan du spørre den som vist i kodebiten nedenfor.

bruker (var db = ny LiteDatabase (connectionString))

   {

var samling = db.GetCollection (“forfattere”);

var forfatter = collection.FindById (1);

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

   }

Merk at FindById metoden returnerer dokumentet etter sin Id eller primærnøkkelindeksen. Du kan eksplisitt opprette en indeks ved hjelp av EnsureIndex metoden som vist nedenfor.

forfattere.EnsureIndex (“FirstName”);

Oppdater et dokument i LiteDB i C #

Det er enkelt å oppdatere et dokument. Du endrer bare eiendomsverdiene og ringer deretter til Oppdater metoden på samlingsforekomsten som vist nedenfor.

var forfatter = collection.FindById (1);

forfatter.Adresse;

collection.Update (forfatter);

Hvis du ønsker å finne alle forfattere som bor på et bestemt sted, kan du bruke følgende spørsmål.

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

Det er en annen klasse som heter LiteRepository det gjør det litt enklere å utføre CRUD-operasjoner. Her er et eksempel som illustrerer hvordan du kan bruke denne klassen.

bruker (var db = ny LiteRepository (connectionString))

            {

db.Insert (ny forfatter

{ Fornavn Etternavn,

Adresse});

            }

Arbeide med filer i LiteDB

LiteDB tilbyr FileStorage samling for å jobbe med filer. Det er enkelt å laste opp eller laste ned filer. Alt du trenger å gjøre er å ringe den riktige metoden på FileStorage samling som vist i kodebitene nedenfor. Slik laster du opp en fil:

db.FileStorage.Upload (“Forfatter-bilde”, @ ”C: \ Temp \ Joydip.jpg”); // Laster opp en fil til databasen
Slik laster du ned en fil:
db.FileStorage.Download (“Forfatter-bilde”, @ ”C: \ Joydip.jpg”); // Laster ned en fil til filsystemet

Det skal bemerkes at LiteDB oppretter to samlinger for å jobbe med filer. Disse inkluderer _filer og _biter. _Filesamlingen inneholder informasjon relatert til filens metadata, og _biter inneholder data som er delt riktig for lagring.

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