C # 'da LiteDB ile nasıl çalışılır

LiteDB, .Net için hızlı, basit, sıfır konfigürasyonlu, gömülü bir NoSQL veritabanıdır. Kullanıcı başına bir veri dosyasına ihtiyaç duyabileceğiniz ancak birçok eşzamanlı yazma işlemini desteklemeniz gerekmeyen basit uygulamalar (web, mobil veya masaüstü) için iyi bir seçimdir. Bu makale, bu veritabanıyla C # kullanarak nasıl çalışabileceğimize dair bir genel bakış sunar.

LiteDB'yi kullanmaya başlamadan önce, bazı kavramlara bir göz atalım. LiteDB, belgeler ve koleksiyonlarla çalışır. Belgeler, bir veri dosyasına veri depolamak ve veri almak için kullanılır. Belge tanımınızın bir POCO sınıfı veya bir BsonDocument sınıfı olabileceğini unutmayın. Her iki durumda da LiteDB, belgenizi veritabanında saklanmadan önce BSON formatına dönüştürecektir.

LiteDB, koleksiyonlar olarak bilinen belge depolarındaki belgeleri düzenler. Bu arada, her koleksiyon benzersiz bir adla tanımlanır ve aynı şemayı paylaşan bir veya daha fazla belge içerir. Belgelerle çalışmak için koleksiyonun yöntemlerinden yararlanabilirsiniz. İşte kullanabileceğiniz yöntemlerin listesi:

  • Insert- koleksiyona yeni bir belge eklemek için kullanılır
  • Update- mevcut bir belgeyi güncellemek için kullanılır
  • Delete- bir belgeyi silmek için kullanılır
  • FindByIdveya - Findbir belgeyi sorgulamak için kullanılır
  • Include- diğer koleksiyonlardan mülkleri doldurmak için kullanılır
  • EnsureIndex- yoksa yeni bir dizin oluşturmak için kullanılır

LiteDB sunucusuz bir veritabanı olduğu için, onu sisteminize kurmanıza gerek yoktur. Projenizdeki LiteDB.dll dosyasına bir referans eklemeniz yeterlidir. Alternatif olarak, LiteDB'yi Visual Studio'da NuGet Paket Yöneticisi aracılığıyla veya NuGet Paket Yöneticisi komut satırı aracına aşağıdaki komutu yazarak yükleyebilirsiniz.

> Install-Package LiteDB

C # 'da LiteDB'de bir POCO sınıfı oluşturun

Visual Studio'da yeni bir konsol uygulaması projesi oluşturun ve bir adla kaydedin. Şimdi, güçlü bir şekilde yazılmış bir belge oluşturmak için kullanacağımız bir POCO sınıfı oluşturalım. IdLiteDB ile çalışmak için sınıfımızda adlandırılmış bir özelliğe sahip olmamız gerektiğini unutmayın. Alternatif olarak, sınıfımızdaki herhangi bir özelliği de [BsonId]nitelikle dekore edebiliriz . İşte Authorbu örnekte kullanacağımız sınıf.

public class Yazar

    {

        public int Id {get; Ayarlamak; }

        public string FirstName {get; Ayarlamak; }

        public string LastName {get; Ayarlamak; }

    }

IdMülkiyet benzersiz ve boş olmalıdır. Id özelliğini boş bırakırsanız, LiteDB Idbir kayıt eklerken otomatik olarak oluşturacaktır .

C # 'da LiteDB'ye bir kayıt ekleyin

Aşağıdaki kod parçacığı, yeni bir Authorörnek oluşturmak ve bir kayıt eklemek için kullanılabilir .

kullanarak (var db = new LiteDatabase (connectionString))

    {

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

       var yazar = yeni Yazar

         {

             İsim,

             Soyadı,

             Adres

          };

         collection.Insert (yazar);

     }

Yukarıdaki kod parçacığına bakın. LiteDatabaseBağlantı dizesini parametre olarak ileterek yeni bir örneğinin nasıl oluşturulduğuna dikkat edin. Aşağıdaki ifade, bir koleksiyonu alır veya yoksa yeni bir koleksiyon oluşturur. InsertKoleksiyon örneğindeki yönteme yapılan çağrı , Idözelliğin değerini otomatik olarak oluşturur ve belgeyi veritabanına ekler.

C # içinde LiteDB'yi Sorgula

Artık veritabanına yeni bir kayıt eklediğinize göre, aşağıdaki kod parçacığında gösterildiği gibi sorgulayabilirsiniz.

kullanarak (var db = new LiteDatabase (connectionString))

   {

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

     var yazar = koleksiyon.FindById (1);

     Console.WriteLine (yazar.İlkAdı + “\ t” + yazar.sonAdı);

   }

FindByIdYöntemin belgeyi kendi Idveya birincil anahtar dizinine göre döndürdüğünü unutmayın . EnsureIndexAşağıda gösterilen yöntemi kullanarak açıkça bir dizin oluşturabilirsiniz .

authors.EnsureIndex ("FirstName");

C # 'da LiteDB'de bir belgeyi güncelleyin

Bir belgeyi güncellemek basittir. Yalnızca özellik değerlerini değiştirir ve ardından Updateaşağıda gösterildiği gibi koleksiyon örneğinde yöntemi çağırırsınız .

var yazar = koleksiyon.FindById (1);

author.Address;

koleksiyon.Güncelleme (yazar);

Belirli bir yerde yaşayan tüm yazarları bulmak isterseniz, aşağıdaki sorguyu kullanabilirsiniz.

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

LiteRepositoryCRUD işlemlerini gerçekleştirmeyi biraz daha kolaylaştıran başka bir sınıf var . İşte bu sınıfı nasıl kullanabileceğinizi gösteren bir örnek.

(var db = new LiteRepository (connectionString)) kullanarak

            {

                db.Insert (yeni Yazar

               { İsim soyisim,

               Adres });

            }

LiteDB'de dosyalarla çalışma

LiteDB, FileStoragedosyalarla çalışmak için koleksiyon sağlar. Dosyaları yüklemek veya indirmek basittir. Yapmanız gereken tek şey, FileStorageaşağıdaki kod parçacıklarında gösterildiği gibi koleksiyonda uygun yöntemi çağırmaktır . Bir dosya yüklemek için:

db.FileStorage.Upload (“Yazar-Fotoğraf”, @ ”C: \ Temp \ Joydip.jpg”); // Veritabanına bir dosya yükler
Bir dosya indirmek için:
db.FileStorage.Download (“Yazar-Fotoğraf”, @ ”C: \\ Joydip.jpg”); // Dosya sistemine bir dosya indirir

LiteDB'nin dosyalarla çalışmak için iki koleksiyon oluşturduğu unutulmamalıdır. Bunlar _filesve içerir _chunks. _Files koleksiyonu, dosyanın meta verileriyle ilgili bilgileri içerir ve _chunksdepolama için uygun şekilde bölünmüş verileri içerir.