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
съдържа данни, които са разделени по подходящ начин за съхранение.