Pregunta

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

¿Fue útil?

Solución

De 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 confirmación en este repositorio pero ya no es un colaborador activo.El trabajo de desarrollo y mantenimiento ahora lo realiza principalmente el equipo de desarrollo de SQLite.El equipo de SQLite está comprometido a respaldar 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 integrado en un único ensamblado de modo mixto.Es un reemplazo completo para el sqlite3.dll original (incluso puede cambiarle el nombre a sqlite3.dll).A diferencia de los ensamblajes mixtos normales, no depende del vinculador del tiempo de ejecución de .NET, por lo que se puede distribuir independientemente de .NET".

Incluso es compatible con Mono.

Otros consejos

Estos son los que puedo encontrar:

Fuentes:

Ahora también existe esta opción: http://code.google.com/p/csharp-sqlite/ - una adaptación completa de SQLite a C#.

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

De su pagina 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, es consciente de esta bifurcación, ha expresado su aprobación y ha cometido privilegios en el nuevo repositorio fósil.El equipo de desarrollo de SQLite tiene la intención de mantener el sistema.data.sqlite en el futuro.

Las versiones históricas, así como los foros de soporte originales, aún se pueden encontrar 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 en su wiki.Los aspectos más destacados incluyen

  • Soporte ADO.NET 2.0
  • Soporte completo de Entity Framework
  • Soporte mono completo
  • Soporte en tiempo de diseño de Visual Studio 2005/2008
  • Marco compacto, soporte C/C++

Las DLL publicadas se pueden descargar directamente desde el sitio.

Definitivamente iría con Sistema.Datos.SQLite (como se menciono antes: http://sqlite.phxsoftware.com/)

Es coherente con ADO.NET (System.Data.*) y está compilado en una única DLL.No sqlite3.dll, porque el código C de SQLite está integrado en System.Data.SQLite.dll.Un poco de magia C++ administrada.

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

Está escrito en C# y debe compilarse simplemente con sus proyectos.Primero fue diseñado para funcionar 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 paquete nuget, donde es el segundo paquete SQLite más popular con más de 60.000 descargas en 2014.

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

  • Muy fácil de integrar con proyectos existentes y con proyectos MonoTouch.
  • Envoltura delgada sobre SQLite y debería ser rápida y eficiente.(La biblioteca no debería ser el cuello de botella en el rendimiento de sus consultas).
  • Métodos muy simples para ejecutar consultas y operaciones CRUD de forma segura (usando parámetros) y para recuperar los resultados de esas consultas de forma inflexible.
  • Trabaja con su modelo de datos sin obligarlo a cambiar sus clases.(Contiene una pequeña capa ORM impulsada por reflexión).
  • 0 dependencias aparte de una forma compilada de la biblioteca sqlite2.

Los no objetivos incluyen:

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

Mono viene con un envoltorio. https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 proporciona código para envolver el dll SQLite real ( http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip encontrado en la página de descarga http://www.sqlite.org/download.html/ ) de forma compatible con .net.Funciona en Linux o Windows.

Este parece el más sencillo de todos los mundos, ya que minimiza su dependencia de 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 SQLite propia para .NET, que se proporciona como parte de ASP.NET Core.La licencia es la Licencia Apache, Versión 2.0.

* Descargo de responsabilidad:En realidad, todavía no he intentado usarlo, pero se proporciona documentación en Microsoft Docs. aquí para usarlo con .NET Core y UWP.

Para aquellos como yo que no necesitan o no quieren ADO.NET, aquellos que necesitan ejecutar un código más cercano a SQLite, pero aún compatible con netstandard (.net 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

Está disponible como nuget aquí. https://www.nuget.org/packages/SqlNado pero también está disponible como un único archivo .cs, por lo que es bastante práctico de usar en cualquier tipo de proyecto de C#.

Admite todas las funciones de SQLite cuando se utilizan comandos SQL y también admite la mayoría de las funciones de SQLite a través de .NET:

  • Mapeo automático de clase a tabla (Guardar, Eliminar, Cargar, LoadAll, LoadByPrimaryKey, LoadByForeignKey, etc.)
  • Sincronización automática de esquemas (tablas, columnas) entre clases y tablas existentes
  • Diseñado para operaciones seguras para subprocesos
  • Se admiten expresiones Where y OrderBy LINQ/IQueryable .NET (aún se está trabajando en esta área), también con soporte de intercalación
  • Esquema de base de datos SQLite (tablas, columnas, etc.) expuesto a .NET
  • Las funciones personalizadas de SQLite se pueden escribir en .NET
  • La E/S BLOB incremental de SQLite se expone como una secuencia .NET para evitar un alto consumo de memoria
  • Soporte de intercalación SQLite, incluida la posibilidad de agregar intercalaciones personalizadas utilizando código .NET
  • Compatibilidad con el motor de búsqueda de texto completo (FTS3) SQLite, incluida la posibilidad de agregar tokenizadores FTS3 personalizados utilizando código .NET (como palabras vacías localizadas, por ejemplo).No creo que ningún otro contenedor .NET haga eso.
  • Soporte automático para Windows 'winsqlite3.dll' (sólo en versiones recientes de Windows) para Evite enviar cualquier dependencia binaria. archivo.¡Esto también funciona en aplicaciones web de Azure!

La versión 1.2 de Monotouch incluye soporte para System.Data.Puedes 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 para 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 desarrollar aplicaciones de bases de datos basadas en SQLite.Como parte del marco de desarrollo de aplicaciones de bases 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 para SQLite presenta nuevos enfoques para diseñar arquitectura de aplicaciones, aumenta la productividad y aprovecha la implementación de aplicaciones de bases de datos.

Yo uso la versión estándar, funciona perfecto :)

Un contenedor básico de las funciones proporcionadas por la biblioteca sqlite.La última versión admite funciones proporcionadas por la biblioteca sqlite 3.7.10

Proyecto SQLiteWrapper

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top