LiteDB je hitra, enostavna, vdelana baza podatkov NoSQL za .Net. To je dobra izbira za preproste aplikacije (splet, mobilno ali namizje), kjer boste morda potrebovali eno podatkovno datoteko na uporabnika, vendar vam ni treba podpirati številnih sočasnih operacij pisanja. Ta članek predstavlja pregled, kako lahko delamo s to bazo podatkov s pomočjo C #.
Preden začnemo uporabljati LiteDB, si oglejmo nekaj konceptov. LiteDB deluje z dokumenti in zbirkami. Dokumenti se uporabljajo za shranjevanje in pridobivanje podatkov v in iz podatkovne datoteke. Upoštevajte, da je vaša definicija dokumenta lahko razred POCO ali razred BsonDocument. Kakor koli že, LiteDB bo vaš dokument pretvoril v format BSON, preden bo shranjen v zbirki podatkov.
LiteDB organizira dokumente v shrambah dokumentov, znanih kot zbirke. Mimogrede je vsaka zbirka označena z edinstvenim imenom in vsebuje enega ali več dokumentov, ki imajo isto shemo. Za delo z dokumenti lahko izkoristite metode zbiranja. Tu je seznam metod, ki jih lahko uporabite:
Vstavi
—Uporablja se za dodajanje novega dokumenta v zbirkoNadgradnja
—Uporablja se za posodobitev obstoječega dokumentaIzbriši
—Uporablja se za brisanje dokumentaFindById
aliNajti
—Uporablja se za poizvedovanje po dokumentuVključi
—Uporablja se za zapolnitev lastnosti iz drugih zbirkEnsureIndex
—Uporablja se za ustvarjanje novega indeksa, če ta ne obstaja
Ker je LiteDB zbirka podatkov brez strežnika, vam je ni treba namestiti v sistem. V svojem projektu preprosto dodate sklic na datoteko LiteDB.dll. Lahko pa namestite LiteDB prek upravitelja paketov NuGet v Visual Studio ali tako, da v orodje za ukazno vrstico NuGet Package Manager vnesete naslednji ukaz.
> Namesti-paket LiteDB
Ustvarite POCO razred v LiteDB v jeziku C #
Ustvarite nov projekt aplikacije konzole v Visual Studio in ga shranite z imenom. Ustvarimo zdaj razred POCO, s katerim bomo ustvarili močno tipiziran dokument. Upoštevajte, da bi morali imeti Id
imenovano lastnost v našem razredu za delo z LiteDB. Lahko pa tudi katero koli lastnino v našem razredu okrasimo z [BsonId]
atribut. Tukaj je Avtor
razred, ki bi ga uporabili v tem primeru.
javni razred Avtor{
public int Id {get; set; }
javni niz FirstName {get; set; }
javni niz LastName {get; set; }
}
The Id
lastnost mora biti unikatna in ne null. Če pustite lastnost Id prazno, bo LiteDB samodejno ustvaril datoteko Id
pri vstavljanju zapisa.
Vstavite zapis v LiteDB v C #
Naslednji delček kode lahko uporabite za ustvarjanje novega Avtor
primerek in vstavite zapis.
z uporabo (var db = nova LiteDatabase (connectionString)){
var collection = db.GetCollection (“avtorji”);
var avtor = nov avtor
{
Ime,
Priimek,
Naslov
};
collection.Insert (avtor);
}
Glejte delček kode zgoraj. Upoštevajte, kako nov primerek LiteDatabase
se ustvari s predajo niza povezave kot parametra. Naslednji stavek pridobi zbirko ali ustvari novo zbirko, če ta ne obstaja. Klic na Vstavi
metoda na primerku zbirke samodejno generira vrednost datoteke Id
in dokument vstavi v bazo podatkov.
Poizvedba LiteDB v jeziku C #
Zdaj, ko ste v bazo podatkov vstavili nov zapis, ga lahko poizvedujete, kot je prikazano v spodnjem delčku kode.
z uporabo (var db = new LiteDatabase (connectionString)){
var collection = db.GetCollection (“avtorji”);
var avtor = collection.FindById (1);
Console.WriteLine (author.FirstName + “\ t” + author.LastName);
}
Upoštevajte, da FindById
metoda vrne dokument s svojim Id
ali indeks primarnega ključa. Indeks lahko izrecno ustvarite s pomočjo EnsureIndex
metoda, kot je prikazano spodaj.
avtorji.EnsureIndex (“FirstName”);
Posodobite dokument v LiteDB v jeziku C #
Posodobitev dokumenta je preprosta. Preprosto spremenite vrednosti lastnosti in nato pokličete Nadgradnja
metoda na primerku zbirke, kot je prikazano spodaj.
var avtor = collection.FindById (1);avtor.Address;
collection.Update (avtor);
Če želite najti vse avtorje, ki živijo na določeni lokaciji, lahko uporabite naslednjo poizvedbo.
var results = collection.Find (x => x.Address.Contains (“Hyderabad”));
Obstaja še en razred, imenovan LiteRepository
to nekoliko olajša izvajanje CRUD operacij. Tu je primer, ki ponazarja, kako lahko uporabljate ta razred.
z uporabo (var db = novo LiteRepository (connectionString)){
db.Insert (nov avtor
{ Ime priimek,
Naslov});
}
Delo z datotekami v LiteDB
LiteDB ponuja FileStorage
zbirka za delo z datotekami. Nalaganje ali nalaganje datotek je preprosto. Vse, kar morate storiti, je poklicati ustrezno metodo na FileStorage
kot je prikazano v spodnjih delčkih kode. Če želite naložiti datoteko:
db.FileStorage.Upload (“Avtor-fotografija”, @ ”C: \ Temp \ Joydip.jpg”); // Naloži datoteko v bazo podatkov
Če želite prenesti datoteko:
db.FileStorage.Download (“Avtor-fotografija”, @ ”C: \ Joydip.jpg”); // Prenese datoteko v datotečni sistem
Treba je opozoriti, da LiteDB ustvari dve zbirki za delo z datotekami. Tej vključujejo _datoteke
in _kosi
. Zbirka _files vsebuje informacije, povezane z metapodatki datoteke, in _kosi
vsebuje podatke, ki so primerno razdeljeni za shranjevanje.