Cara bekerja dengan LiteDB di C #

LiteDB adalah pangkalan data NoSQL tertanam yang pantas, sederhana, tanpa konfigurasi untuk. Ini adalah pilihan yang baik untuk aplikasi sederhana (web, mudah alih, atau desktop) di mana anda mungkin memerlukan satu fail data per pengguna tetapi tidak perlu menyokong banyak operasi penulisan serentak. Artikel ini memberikan gambaran umum mengenai bagaimana kita dapat bekerja dengan pangkalan data ini menggunakan C #.

Sebelum kita mula menggunakan LiteDB, mari kita lihat beberapa konsep. LiteDB berfungsi dengan dokumen dan koleksi. Dokumen digunakan untuk menyimpan dan mengambil data ke dan dari fail data. Perhatikan bahawa definisi dokumen anda boleh menjadi kelas POCO atau kelas BsonDocument. Bagaimanapun, LiteDB akan menukar dokumen anda ke format BSON sebelum disimpan dalam pangkalan data.

LiteDB mengatur dokumen di dalam kedai dokumen yang dikenali sebagai koleksi. Secara kebetulan, setiap koleksi dikenal pasti dengan nama yang unik dan mengandungi satu atau lebih dokumen yang mempunyai skema yang sama. Untuk menggunakan dokumen, anda boleh memanfaatkan kaedah pengumpulannya. Berikut adalah senarai kaedah yang boleh anda gunakan:

  • Insert—Digunakan untuk menambahkan dokumen baru ke koleksi
  • Update—Digunakan untuk mengemas kini dokumen yang ada
  • Delete—Digunakan untuk menghapus dokumen
  • FindByIdatau Find—digunakan untuk meminta dokumen
  • Include- Digunakan untuk mengisi harta tanah dari koleksi lain
  • EnsureIndex—Digunakan untuk membuat indeks baru jika tidak ada

Kerana LiteDB adalah pangkalan data tanpa pelayan, anda tidak perlu memasangnya di sistem anda. Anda hanya menambah rujukan ke fail LiteDB.dll dalam projek anda. Sebagai alternatif, anda boleh memasang LiteDB melalui NuGet Package Manager di Visual Studio atau dengan menaip arahan berikut di alat baris perintah NuGet Package Manager.

> Install-Package LiteDB

Buat kelas POCO di LiteDB di C #

Buat projek aplikasi konsol baru di Visual Studio dan simpan dengan nama. Sekarang mari kita buat kelas POCO yang akan kita gunakan untuk membuat dokumen yang ditaip kuat. Perhatikan bahawa kita mesti mempunyai Idharta bernama di kelas kita untuk bekerjasama dengan LiteDB. Sebagai alternatif, kita juga boleh menghias harta tanah di kelas kita dengan [BsonId]atribut. Inilah Authorkelas yang akan kami gunakan dalam contoh ini.

Pengarang kelas awam

    {

        id int awam {dapatkan; menetapkan; }

        rentetan awam FirstName {get; menetapkan; }

        rentetan umum LastName {get; menetapkan; }

    }

The Idhartanah perlu menjadi unik dan tidak null. Sekiranya anda membiarkan harta Id kosong, LiteDB secara automatik akan menghasilkan Idketika memasukkan rekod.

Masukkan rekod di LiteDB di C #

Coretan kod berikut dapat digunakan untuk membuat Authorinstance baru dan memasukkan catatan.

menggunakan (var db = LiteDatabase baru (connectionString))

    {

       koleksi var = db.GetCollection ("pengarang");

       var author = Pengarang baru

         {

             Nama pertama,

             Nama terakhir,

             Alamat

          };

         koleksi.Insert (pengarang);

     }

Rujuk coretan kod di atas. Perhatikan bagaimana contoh baru LiteDatabasedibuat dengan meneruskan rentetan sambungan sebagai parameter. Pernyataan berikut mengambil koleksi atau membuat koleksi baru jika tidak ada. Panggilan ke Insertkaedah pada contoh pengumpulan secara automatik menghasilkan nilai Idharta tanah dan memasukkan dokumen ke dalam pangkalan data.

Pertanyaan LiteDB dalam C #

Setelah anda memasukkan rekod baru dalam pangkalan data, anda boleh membuat pertanyaan seperti yang ditunjukkan dalam coretan kod di bawah.

menggunakan (var db = LiteDatabase baru (connectionString))

   {

     koleksi var = db.GetCollection ("pengarang");

     var author = koleksi.FindById (1);

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

   }

Perhatikan bahawa FindByIdkaedah mengembalikan dokumen dengan Idatau indeks kunci utama. Anda boleh membuat indeks secara eksplisit menggunakan EnsureIndexkaedah seperti yang ditunjukkan di bawah.

pengarang.EnsureIndex ("FirstName");

Kemas kini dokumen di LiteDB di C #

Mengemas kini dokumen adalah mudah. Anda hanya menukar nilai harta tanah dan kemudian memanggil Updatekaedah pada contoh koleksi seperti yang ditunjukkan di bawah.

var author = koleksi.FindById (1);

pengarang.Address;

koleksi.Kemas kini (pengarang);

Sekiranya anda ingin mencari semua pengarang yang tinggal di lokasi tertentu, anda boleh menggunakan pertanyaan berikut.

hasil var = koleksi.Cari (x => x.Address.Contains ("Hyderabad"));

Terdapat kelas lain yang dipanggil LiteRepositoryyang menjadikannya lebih mudah untuk melakukan operasi CRUD. Berikut adalah contoh yang menggambarkan bagaimana anda boleh menggunakan kelas ini.

menggunakan (var db = LiteRepository baru (connectionString))

            {

                db. Masukkan (Pengarang baru

               { Nama pertama nama akhir,

               Alamat});

            }

Bekerja dengan fail di LiteDB

LiteDB menyediakan FileStoragekoleksi untuk bekerja dengan fail. Memuat naik atau memuat turun fail adalah mudah. Yang perlu anda lakukan ialah memanggil kaedah yang sesuai pada FileStoragekoleksi seperti yang ditunjukkan dalam coretan kod di bawah. Untuk memuat naik fail:

db.FileStorage.Upload ("Pengarang-Foto", @ "C: \ Temp \ Joydip.jpg"); // Muat naik fail ke pangkalan data
Untuk memuat turun fail:
db.FileStorage.Download ("Pengarang-Foto", @ "C: \\ Joydip.jpg"); // Muat turun fail ke sistem fail

Perlu diingatkan bahawa LiteDB membuat dua koleksi untuk berfungsi dengan fail. Ini termasuk _filesdan _chunks. Koleksi _files mengandungi maklumat yang berkaitan dengan metadata fail, dan _chunksmengandungi data yang dipisahkan dengan tepat untuk penyimpanan.