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 samlingenOppdater
—Brukt til å oppdatere et eksisterende dokumentSlett
—Brukt til å slette et dokumentFindById
ellerFinne
—Brukt for å spørre et dokumentInkludere
—Brukt til å fylle ut eiendommer fra andre samlingerEnsureIndex
—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.