Cómo trabajar con LiteDB en C #

LiteDB es una base de datos NoSQL integrada, rápida, simple y sin configuración para .Net. Es una buena opción para aplicaciones simples (web, móvil o de escritorio) en las que puede necesitar un archivo de datos por usuario, pero no necesita admitir muchas operaciones de escritura simultáneas. Este artículo presenta una descripción general sobre cómo podemos trabajar con esta base de datos usando C #.

Antes de comenzar a usar LiteDB, echemos un vistazo a algunos de los conceptos. LiteDB trabaja con documentos y colecciones. Los documentos se utilizan para almacenar y recuperar datos desde y hacia un archivo de datos. Tenga en cuenta que la definición de su documento puede ser una clase POCO o una clase BsonDocument. De cualquier manera, LiteDB convertirá su documento al formato BSON antes de que se almacene en la base de datos.

LiteDB organiza los documentos dentro de los almacenes de documentos conocidos como colecciones. Por cierto, cada colección se identifica con un nombre único y contiene uno o más documentos que comparten el mismo esquema. Para trabajar con documentos, puede aprovechar los métodos de la colección. Aquí está la lista de los métodos que puede utilizar:

  • Insert: Se usa para agregar un nuevo documento a la colección
  • Update: Se utiliza para actualizar un documento existente
  • Delete: Utilizado para eliminar un documento
  • FindByIdo Find—usado para consultar un documento
  • Include: Utilizado para poblar propiedades de otras colecciones
  • EnsureIndex: Se utiliza para crear un índice nuevo si no existe

Debido a que LiteDB es una base de datos sin servidor, no necesita instalarla en su sistema. Simplemente agregue una referencia al archivo LiteDB.dll en su proyecto. Alternativamente, puede instalar LiteDB a través del Administrador de paquetes NuGet en Visual Studio o escribiendo el siguiente comando en la herramienta de línea de comandos del Administrador de paquetes NuGet.

> Install-Package LiteDB

Cree una clase POCO en LiteDB en C #

Cree un nuevo proyecto de aplicación de consola en Visual Studio y guárdelo con un nombre. Ahora creemos una clase POCO que usaremos para crear un documento fuertemente tipado. Tenga en cuenta que deberíamos tener una Idpropiedad con nombre en nuestra clase para trabajar con LiteDB. Alternativamente, también podemos decorar cualquier propiedad de nuestra clase con el [BsonId]atributo. Aquí está la Authorclase que usaríamos en este ejemplo.

Autor de clase pública

    {

        public int Id {obtener; conjunto; }

        cadena pública FirstName {get; conjunto; }

        cadena pública LastName {get; conjunto; }

    }

La Idpropiedad debe ser única y no nula. Si deja la propiedad Id vacía, LiteDB generará automáticamente el Idal insertar un registro.

Insertar un registro en LiteDB en C #

El siguiente fragmento de código se puede utilizar para crear una nueva Authorinstancia e insertar un registro.

usando (var db = new LiteDatabase (connectionString))

    {

       var colección = db.GetCollection ("autores");

       var author = nuevo autor

         {

             Primer nombre,

             Apellido,

             Habla a

          };

         colección.Insert (autor);

     }

Consulte el fragmento de código anterior. Observe cómo LiteDatabasese crea una nueva instancia de pasando la cadena de conexión como parámetro. La siguiente declaración recupera una colección o crea una nueva colección si no existe ninguna. La llamada al Insertmétodo en la instancia de la colección genera automáticamente el valor de la Idpropiedad e inserta el documento en la base de datos.

Consulta LiteDB en C #

Ahora que ha insertado un nuevo registro en la base de datos, puede consultarlo como se muestra en el fragmento de código a continuación.

usando (var db = new LiteDatabase (connectionString))

   {

     var colección = db.GetCollection ("autores");

     var autor = colección.FindById (1);

     Console.WriteLine (autor.PrimerNombre + “\ t” + autor.LastName);

   }

Tenga en cuenta que el FindByIdmétodo devuelve el documento por su Idíndice de clave principal o por su índice. Puede crear explícitamente un índice utilizando el EnsureIndexmétodo que se muestra a continuación.

autores.EnsureIndex ("Nombre");

Actualizar un documento en LiteDB en C #

Actualizar un documento es sencillo. Simplemente cambie los valores de propiedad y luego llame al Updatemétodo en la instancia de colección como se muestra a continuación.

var autor = colección.FindById (1);

author.Address;

collection.Update (autor);

Si desea encontrar todos los autores que viven en una ubicación en particular, puede utilizar la siguiente consulta.

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

Hay otra clase llamada LiteRepositoryque hace que sea un poco más fácil realizar operaciones CRUD. A continuación, se muestra un ejemplo que ilustra cómo puede utilizar esta clase.

usando (var db = new LiteRepository (connectionString))

            {

                db.Insert (nuevo autor

               { Nombre Apellido,

               Habla a });

            }

Trabajar con archivos en LiteDB

LiteDB proporciona la FileStoragecolección para trabajar con archivos. Cargar o descargar archivos es simple. Todo lo que necesita hacer es llamar al método apropiado en la FileStoragecolección como se muestra en los fragmentos de código a continuación. Para cargar un archivo:

db.FileStorage.Upload (“Autor-Foto”, @ ”C: \ Temp \ Joydip.jpg”); // Carga un archivo a la base de datos
Para descargar un archivo:
db.FileStorage.Download (“Autor-Foto”, @ ”C: \\ Joydip.jpg”); // Descarga un archivo al sistema de archivos

Cabe señalar que LiteDB crea dos colecciones para trabajar con archivos. Estos incluyen _filesy _chunks. La colección _files contiene información relacionada con los metadatos del archivo y _chunkscontiene datos que se dividen adecuadamente para su almacenamiento.