¿Hay un contenedor .NET / C # para SQLite?

Me gustaría utilizar SQLite desde C # .Net, pero parece que no puedo encontrar una biblioteca adecuada. ¿Hay alguno? ¿Uno oficial? ¿Hay otras maneras de usar SQLite que con un contenedor?

Desde https://system.data.sqlite.org :

System.Data.SQLite es un adaptador ADO.NET para SQLite.

System.Data.SQLite fue iniciado por Robert Simpson. Robert todavía tiene privilegios de commit en este repository pero ya no es un contribuyente activo. El trabajo de desarrollo y mantenimiento ahora lo realiza principalmente el Equipo de desarrollo de SQLite. El equipo de SQLite se compromete a soportar System.Data.SQLite a largo plazo.

“System.Data.SQLite es el motor de base de datos SQLite original y un proveedor completo de ADO.NET 2.0, todo en un solo ensamblaje de modo mixto. Es un reemplazo completo para el sqlite3.dll original (incluso puede cambiarle el nombre a sqlite3.dll). A diferencia de los ensamblados mixtos normales, no tiene una dependencia del enlazador en el tiempo de ejecución .NET por lo que se puede distribuir independientemente de .NET “.

Incluso es compatible con Mono.

Aquí están los que puedo encontrar:

  • managed-sqlite
  • Contenedor SQLite.NET
  • System.Data.SQLite

Fuentes:

  • sqlite.org
  • otros carteles

También ahora existe esta opción: http://code.google.com/p/csharp-sqlite/ – un puerto completo de SQLite a C #.

La gente de sqlite.org se ha hecho cargo del desarrollo del proveedor de ADO.NET:

Desde su página de inicio :

Esta es una bifurcación del popular adaptador ADO.NET 4.0 para SQLite conocido como System.Data.SQLite. El creador de System.Data.SQLite, Robert Simpson, conoce este fork, ha expresado su aprobación y tiene privilegios de commit en el nuevo repository de Fossil. El equipo de desarrollo de SQLite tiene la intención de mantener System.Data.SQLite en progreso.

Las versiones históricas, así como los foros de soporte originales, aún pueden encontrarse en http://sqlite.phxsoftware.com , aunque no ha habido actualizaciones de esta versión desde abril de 2010.

La lista completa de características se puede encontrar en su wiki . Los puntos destacados incluyen

  • Soporte ADO.NET 2.0
  • Soporte de Full Entity Framework
  • Soporte completo de Mono
  • Compatibilidad con Visual Studio 2005/2008 Design-Time
  • Compact Framework, soporte C / C ++

Las DLL lanzadas se pueden descargar directamente desde el sitio .

Definitivamente iría con System.Data.SQLite (como se mencionó anteriormente: http://sqlite.phxsoftware.com/ )

Es coherente con ADO.NET (System.Data. *) Y se comstack en una sola DLL. No sqlite3.dll: porque el código C de SQLite está incrustado en System.Data.SQLite.dll. Un poco de magia C ++ administrada.

sqlite-net es una biblioteca mínima de código abierto para permitir que las aplicaciones .NET y Mono almacenen datos en bases de datos SQLite 3 . Más información en la página wiki .

Está escrito en C # y está destinado a ser simplemente comstackdo con sus proyectos. Primero fue diseñado para trabajar con MonoTouch en el iPhone, pero ha crecido para funcionar en todas las plataformas (Mono para Android, .NET, Silverlight, WP7, WinRT, Azure, etc.).

Está disponible como un paquete Nuget , donde es el segundo paquete SQLite más popular con más de 60,000 descargas a partir de 2014.

sqlite-net fue diseñado como una capa de base de datos rápida y conveniente. Su diseño se desprende de estos objectives:

  • Muy fácil de integrar con proyectos existentes y con proyectos MonoTouch.
  • Envolvedor delgado sobre SQLite y debe ser rápido y eficiente. (La biblioteca no debe ser el cuello de botella de rendimiento de sus consultas).
  • Métodos muy simples para ejecutar operaciones y consultas CRUD de forma segura (usando parámetros) y para recuperar los resultados de esas consultas de manera fuertemente tipada.
  • Funciona con su modelo de datos sin obligarlo a cambiar sus clases. (Contiene una pequeña capa ORM orientada por reflexión.)
  • 0 dependencias aparte de una forma comstackda de la biblioteca sqlite2.

Los no objectives incluyen:

  • No es una implementación ADO.NET. Este no es un controlador SQLite completo. Si lo necesita, use System.Data.SQLite.

Mono viene con una envoltura. https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 proporciona el código para ajustar el dll de SQLite real ( http: //www.sqlite. org / sqlite-shell-win32-x86-3071300.zip que se encuentra en la página de descarga http://www.sqlite.org/download.html/ ) de una manera amigable .net. Funciona en Linux o Windows.

Este parece el más delgado de todos los mundos, lo que minimiza su dependencia de las bibliotecas de terceros. Si tuviera que hacer este proyecto desde cero, esta es la forma en que lo haría.

Microsoft.Data.Sqlite

Microsoft ahora proporciona Microsoft.Data.Sqlite como una solución de SQLite propia para .NET, que se proporciona como parte de ASP.NET Core. La licencia es la Licencia Apache, Versión 2.0 .

  • Paquete NuGet
  • Repo fuente en GitHub

* Descargo de responsabilidad: en realidad no he intentado utilizar esto yo mismo todavía, pero aquí hay documentación provista en Microsoft Docs para usarla con .NET Core y UWP.

Para aquellos como yo que no necesitan o no quieren ADO.NET, aquellos que necesitan ejecutar código más cerca de SQLite, pero aún son compatibles con netstandard ( netstandard framework, .net core, etc.), he creado un proyecto de código abierto 100% gratuito llamado SQLNado (para “No ADO”) disponible en github aquí:

https://github.com/smourier/SQLNado

Nota: no está disponible como nuget a partir de hoy, sino como un único archivo .cs, por lo que es bastante práctico usarlo en cualquier tipo de proyecto C #.

La versión 1.2 de Monotouch incluye soporte para System.Data. Puede encontrar más detalles aquí: http://monotouch.net/Documentation/System.Data

Pero básicamente te permite usar los patrones habituales de ADO .NET con sqlite.

http://www.devart.com/dotconnect/sqlite/

dotConnect for SQLite es un proveedor de datos mejorado para SQLite que se basa en la tecnología ADO.NET para presentar una solución completa para el desarrollo de aplicaciones de bases de datos basadas en SQLite. Como parte del marco de desarrollo de la aplicación de la base de datos Devart, dotConnect para SQLite ofrece conectividad nativa de alto rendimiento a la base de datos SQLite y una serie de herramientas y tecnologías de desarrollo innovadoras.

dotConnect for SQLite presenta nuevos enfoques para diseñar architecture de aplicaciones, aumenta la productividad y aprovecha la implementación de aplicaciones de bases de datos.

Uso la versión estándar, funciona perfecto 🙂

Una envoltura barebones de las funciones proporcionadas por la biblioteca sqlite. La última versión es compatible con las funciones provistas en la biblioteca sqlite 3.7.10

Proyecto SQLiteWrapper