Bagaimana bekerja dengan LiteDB di C #

LiteDB adalah database NoSQL tertanam yang cepat, sederhana, tanpa konfigurasi, dan tertanam untuk .Net. Ini adalah pilihan yang baik untuk aplikasi sederhana (web, seluler, atau desktop) di mana Anda mungkin memerlukan satu file data per pengguna tetapi tidak perlu mendukung banyak operasi tulis bersamaan. Artikel ini menyajikan gambaran umum tentang bagaimana kita dapat bekerja dengan database ini menggunakan C #.

Sebelum kita mulai menggunakan LiteDB, mari kita lihat beberapa konsepnya. LiteDB berfungsi dengan dokumen dan koleksi. Dokumen digunakan untuk menyimpan dan mengambil data ke dan dari file data. Perhatikan bahwa definisi dokumen Anda bisa berupa kelas POCO atau kelas BsonDocument. Bagaimanapun, LiteDB akan mengonversi dokumen Anda ke format BSON sebelum disimpan dalam database.

LiteDB mengatur dokumen di dalam penyimpanan dokumen yang dikenal sebagai koleksi. Kebetulan, setiap koleksi diidentifikasi dengan nama unik dan berisi satu atau lebih dokumen yang berbagi skema yang sama. Untuk bekerja dengan dokumen, Anda dapat memanfaatkan metode pengumpulan. Berikut adalah daftar metode yang dapat Anda gunakan:

  • Insert—Digunakan untuk menambahkan dokumen baru ke koleksi
  • Update—Digunakan untuk memperbarui dokumen yang ada
  • Delete—Digunakan untuk menghapus dokumen
  • FindByIdatau Find—digunakan untuk menanyakan dokumen
  • Include—Digunakan untuk mengisi properti dari koleksi lain
  • EnsureIndex—Digunakan untuk membuat indeks baru jika tidak ada

Karena LiteDB adalah database tanpa server, Anda tidak perlu menginstalnya di sistem Anda. Anda cukup menambahkan referensi ke file LiteDB.dll di proyek Anda. Alternatifnya, Anda dapat menginstal LiteDB melalui NuGet Package Manager di Visual Studio atau dengan mengetikkan perintah berikut di alat baris perintah NuGet Package Manager.

> Install-Package LiteDB

Buat kelas POCO di LiteDB di C #

Buat proyek aplikasi konsol baru di Visual Studio dan simpan dengan nama. Sekarang mari buat kelas POCO yang akan kita gunakan untuk membuat dokumen yang diketik dengan kuat. Perhatikan bahwa kita harus memiliki Idproperti bernama di kelas kita untuk bekerja dengan LiteDB. Alternatifnya, kita juga bisa mendekorasi properti apapun di kelas kita dengan [BsonId]atribut. Inilah Authorkelas yang akan kami gunakan dalam contoh ini.

kelas publik Penulis

    {

        public int Id {get; set; }

        string publik FirstName {get; set; }

        string publik LastName {get; set; }

    }

The Idproperti harus unik dan tidak null. Jika Anda membiarkan properti Id kosong, LiteDB akan secara otomatis menghasilkan Idketika memasukkan record.

Masukkan catatan di LiteDB di C #

Potongan kode berikut dapat digunakan untuk membuat Authorinstance baru dan menyisipkan record.

menggunakan (var db = new LiteDatabase (connectionString))

    {

       var collection = db.GetCollection ("penulis");

       var author = Penulis baru

         {

             Nama depan,

             Nama keluarga,

             Alamat

          };

         collection.Insert (penulis);

     }

Lihat cuplikan kode di atas. Perhatikan bagaimana contoh baru LiteDatabasedibuat dengan meneruskan string koneksi sebagai parameter. Pernyataan berikut mengambil koleksi atau membuat koleksi baru jika tidak ada. Panggilan ke Insertmetode pada contoh koleksi secara otomatis menghasilkan nilai Idproperti dan memasukkan dokumen ke dalam database.

Query LiteDB di C #

Sekarang Anda telah memasukkan record baru ke dalam database, Anda dapat membuat kueri seperti yang ditunjukkan pada potongan kode di bawah ini.

menggunakan (var db = new LiteDatabase (connectionString))

   {

     var collection = db.GetCollection ("penulis");

     var author = collection.FindById (1);

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

   }

Perhatikan bahwa FindByIdmetode mengembalikan dokumen dengan Idatau indeks kunci primernya. Anda dapat secara eksplisit membuat indeks menggunakan EnsureIndexmetode seperti yang ditunjukkan di bawah ini.

author.EnsureIndex ("FirstName");

Perbarui dokumen di LiteDB di C #

Memperbarui dokumen itu sederhana. Anda cukup mengubah nilai properti dan kemudian memanggil Updatemetode pada contoh koleksi seperti yang ditunjukkan di bawah ini.

var author = collection.FindById (1);

author.Address;

collection.Update (penulis);

Jika Anda ingin menemukan semua penulis yang tinggal di lokasi tertentu, Anda dapat menggunakan kueri berikut.

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

Ada kelas lain yang disebut LiteRepositoryyang membuatnya lebih mudah untuk melakukan operasi CRUD. Berikut adalah contoh yang menggambarkan bagaimana Anda dapat menggunakan kelas ini.

menggunakan (var db = new LiteRepository (connectionString))

            {

                db.Insert (Penulis baru

               { Nama depan Nama Belakang,

               Alamat});

            }

Bekerja dengan file di LiteDB

LiteDB menyediakan FileStoragekoleksi untuk bekerja dengan file. Mengupload atau mendownload file itu sederhana. Yang perlu Anda lakukan adalah memanggil metode yang sesuai pada FileStoragepengumpulan seperti yang ditunjukkan dalam cuplikan kode di bawah. Untuk mengupload file:

db.FileStorage.Upload ("Penulis-Foto", @ "C: \ Temp \ Joydip.jpg"); // Mengunggah file ke database
Untuk mengunduh file:
db.FileStorage.Download (“Foto-Penulis”, @ ”C: \\ Joydip.jpg”); // Mengunduh file ke sistem file

Perlu dicatat bahwa LiteDB membuat dua koleksi untuk bekerja dengan file. Ini termasuk _filesdan _chunks. Koleksi _files berisi informasi yang terkait dengan metadata file, dan _chunksberisi data yang dipisahkan dengan tepat untuk penyimpanan.