Как да работя с LiteDB в C #

LiteDB е бърза, проста, вградена NoSQL база данни за .Net. Това е добър избор за прости приложения (уеб, мобилни или настолни), където може да се нуждаете от един файл с данни на потребител, но не е необходимо да поддържате много едновременни операции за запис. Тази статия представя общ преглед на това как можем да работим с тази база данни, използвайки C #.

Преди да започнем да използваме LiteDB, нека разгледаме някои от концепциите. LiteDB работи с документи и колекции. Документите се използват за съхраняване и извличане на данни към и от файл с данни. Имайте предвид, че дефиницията на вашия документ може да бъде или клас POCO, или клас BsonDocument. Така или иначе, LiteDB ще конвертира вашия документ в BSON формат, преди да бъде съхранен в базата данни.

LiteDB организира документите в магазините за документи, известни като колекции. Между другото, всяка колекция се идентифицира с уникално име и съдържа един или повече документи, които споделят една и съща схема. За да работите с документи, можете да се възползвате от методите на събирането. Ето списъка с методите, които можете да използвате:

  • Insert—Използвано за добавяне на нов документ към колекцията
  • Update—Използва се за актуализиране на съществуващ документ
  • Delete—Използва се за изтриване на документ
  • FindByIdили Find—използвано за заявка за документ
  • Include—Използва се за попълване на свойства от други колекции
  • EnsureIndex—Използва се за създаване на нов индекс, ако той не съществува

Тъй като LiteDB е база данни без сървър, не е необходимо да я инсталирате във вашата система. Просто добавяте препратка към файла LiteDB.dll във вашия проект. Като алтернатива можете да инсталирате LiteDB чрез NuGet Package Manager в Visual Studio или като напишете следната команда в инструмента за команден ред NuGet Package Manager.

> Install-Package LiteDB

Създайте POCO клас в LiteDB в C #

Създайте нов проект за конзолно приложение в Visual Studio и го запишете с име. Нека сега създадем POCO клас, който ще използваме, за да създадем силно типизиран документ. Обърнете внимание, че трябва да имаме Idсвойство с име в нашия клас, за да работим с LiteDB. Като алтернатива можем също да украсим всяко свойство от нашия клас с [BsonId]атрибута. Ето Authorкласа, който бихме използвали в този пример.

публична класа Автор

    {

        public int Id {get; комплект; }

        публичен низ FirstName {get; комплект; }

        публичен низ LastName {get; комплект; }

    }

В Idимота трябва да е уникален и не нула. Ако оставите свойството Id празно, LiteDB автоматично ще генерира Idпри вмъкване на запис.

Вмъкнете запис в LiteDB в C #

Следният кодов фрагмент може да се използва за създаване на нов Authorекземпляр и вмъкване на запис.

използване (var db = new LiteDatabase (connectionString))

    {

       var колекция = db.GetCollection („автори“);

       var author = нов автор

         {

             Първо име,

             Фамилия,

             Адрес

          };

         collection.Insert (автор);

     }

Обърнете се към кодовия фрагмент по-горе. Обърнете внимание как се създава нов екземпляр LiteDatabaseчрез предаване на низ за връзка като параметър. Следният оператор извлича колекция или създава нова колекция, ако такава не съществува. Извикването на Insertметода в екземпляра на колекция автоматично генерира стойността на Idсвойството и вмъква документа в базата данни.

Заявете LiteDB в C #

След като сте вмъкнали нов запис в базата данни, можете да го направите, както е показано в кодовия фрагмент по-долу.

използване (var db = new LiteDatabase (connectionString))

   {

     var колекция = db.GetCollection („автори“);

     var author = collection.FindById (1);

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

   }

Имайте предвид, че FindByIdметодът връща документа чрез неговия Idили индекс на първичен ключ. Можете изрично да създадете индекс, като използвате EnsureIndexметода, както е показано по-долу.

автори.EnsureIndex (“FirstName”);

Актуализирайте документ в LiteDB в C #

Актуализирането на документ е лесно. Просто променяте стойностите на свойствата и след това извиквате Updateметода в екземпляра на колекцията, както е показано по-долу.

var author = collection.FindById (1);

автор.Адрес;

collection.Update (автор);

Ако искате да намерите всички автори, които живеят на определено място, можете да използвате следната заявка.

var резултати = collection.Find (x => x.Address.Contains (“Hyderabad”));

Има и друг клас, наречен LiteRepository, който улеснява извършването на CRUD операции. Ето пример, който илюстрира как можете да използвате този клас.

използвайки (var db = new LiteRepository (connectionString))

            {

                db.Insert (нов автор

               { Име, фамилия,

               Адрес});

            }

Работа с файлове в LiteDB

LiteDB предоставя FileStorageколекцията за работа с файлове. Качването или изтеглянето на файлове е лесно. Всичко, което трябва да направите, е да извикате подходящия метод в FileStorageколекцията, както е показано в кодовите фрагменти по-долу. За да качите файл:

db.FileStorage.Upload (“Автор-снимка”, @ ”C: \ Temp \ Joydip.jpg”); // Качва файл в базата данни
За да изтеглите файл:
db.FileStorage.Download (“Автор-снимка”, @ ”C: \\ Joydip.jpg”); // Изтегля файл във файловата система

Трябва да се отбележи, че LiteDB създава две колекции за работа с файлове. Те включват _filesи _chunks. Колекцията _files съдържа информация, свързана с метаданните на файла, и _chunksсъдържа данни, които са разделени по подходящ начин за съхранение.