Programiranje

Kako delati z LiteDB v jeziku C #

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 zbirko
  • Nadgradnja—Uporablja se za posodobitev obstoječega dokumenta
  • Izbriši—Uporablja se za brisanje dokumenta
  • FindById ali Najti—Uporablja se za poizvedovanje po dokumentu
  • Vključi—Uporablja se za zapolnitev lastnosti iz drugih zbirk
  • EnsureIndex—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.