¿Hay un contenedor .NET / C # para SQLite? [cerrado]
267
Me gustaría usar SQLite desde C # .Net, pero parece que no puedo encontrar una biblioteca adecuada. ¿Hay uno? Uno oficial? ¿Hay otras formas de usar SQLite que con un contenedor?
System.Data.SQLite es un adaptador ADO.NET para SQLite.
System.Data.SQLite fue iniciado por Robert Simpson. Robert todavía tiene privilegios de compromiso en este repositorio, 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 admitir System.Data.SQLite a largo plazo.
"System.Data.SQLite es el motor de base de datos SQLite original y un proveedor ADO.NET 2.0 completo, 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 dependencia del vinculador en el tiempo de ejecución de .NET, por lo que puede distribuirse independientemente de .NET ".
Esta es una vieja pregunta, pero tuve que agregar mis $ 0.02. System.Data.SQLite rocks. Es de calidad súper refinada, estable y de calidad comercial. Lo mejor de todo es que es 100% de código administrado y se ha lanzado como código fuente de dominio público.
Nathan Ridley
44
Solo por coherencia, porque la gente habla de ambos como cosas diferentes. En sqlite.phxsoftware.com se apunta a sourceforge.net/projects/sqlite-dotnet2 para descargar.
yeyeyerman
16
Este contenedor ya no está siendo desarrollado por su autor original, y el desarrollo parece haber sido asumido por el propio SQLite. El nuevo sitio está en system.data.sqlite.org, aunque en este momento parece menos fácil de usar y más trabajo en progreso en comparación con el original.
mikel
55
@NathanRidley - ¿Está seguro de su participación del 100% logró, porque esta respuesta dice "System.Data.SQLite es el motor de base de datos SQLite original y un completo proveedor de ADO.NET 2.0, todo en un solo modo mixto montaje."
LogicNP
2
Para su información, traté de usar el paquete Nuget estándar Microsoft.Data.Sqlite .NET de Microsoft, pero falló en un puñado de pruebas de integración en la biblioteca AsyncPoco Github. Después de cambiar a System.Data.SQLite, todo funcionó perfectamente.
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, está al tanto de esta bifurcación, ha expresado su aprobación y ha otorgado privilegios en el nuevo repositorio de Fossil. El equipo de desarrollo de SQLite tiene la intención de mantener System.Data.SQLite en el futuro.
Las versiones históricas, así como los foros de soporte originales, todavía 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 su wiki . Lo más destacado incluye
Soporte de ADO.NET 2.0
Soporte completo de Entity Framework
Soporte mono completo
Soporte de Visual Studio 2005/2008 en tiempo de diseño
Marco compacto, soporte C / C ++
Las DLL publicadas se pueden descargar directamente desde el sitio .
Es coherente con ADO.NET (System.Data. *) Y se compila 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 administrada de C ++.
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 compilado 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 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 objetivos:
Muy fácil de integrar con proyectos existentes y con proyectos MonoTouch.
Thin wrapper 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 CRUD y consultas de forma segura (usando parámetros) y para recuperar los resultados de esas consultas de una manera fuertemente tipada.
Funciona con su modelo de datos sin obligarlo a cambiar sus clases. (Contiene una pequeña capa ORM reflejada).
0 dependencias aparte de una forma compilada de la biblioteca sqlite2.
Las no metas incluyen:
No es una implementación de ADO.NET. Este no es un controlador SQLite completo. Si lo necesita, use System.Data.SQLite.
Noté que la mayoría de los comentarios anteriores a 2014 decían System.Data.SQLite que intenté instalar en mi aplicación Windows Store (no funcionó). Sqlite-net funciona.
Este parece el más delgado de todos los mundos, minimizando 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 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 de Apache, versión 2.0 .
* Descargo de responsabilidad: todavía no he intentado usar esto yo mismo, pero hay cierta documentación provista 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 código más cerca de SQLite, pero aún compatibles 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í:
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 C #.
Es compatible con todas las características de SQLite cuando se utilizan comandos SQL, y también es compatible con la mayoría de las características de SQLite a través de .NET:
Asignación automática de clase a tabla (Guardar, Eliminar, Cargar, Cargar todo, LoadByPrimaryKey, LoadByForeignKey, etc.)
Sincronización automática de esquema (tablas, columnas) entre clases y tabla existente
Diseñado para operaciones seguras con hilos
Dónde y OrderBy LINQ / IQueryable .NET expresiones son compatibles (el trabajo todavía está en progreso 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 incremental de BLOB de SQLite se expone como un flujo de .NET para evitar un alto consumo de memoria
Compatibilidad con intercalación de SQLite, incluida la posibilidad de agregar intercalaciones personalizadas utilizando código .NET
Compatibilidad con el motor de búsqueda de texto completo SQLite (FTS3), incluida la posibilidad de agregar tokenizadores FTS3 personalizados utilizando código .NET (como las palabras de detención localizadas, por ejemplo). No creo que ningún otro contenedor de .NET haga eso.
Soporte automático para Windows 'winsqlite3.dll' (solo en versiones recientes de Windows) para evitar el envío de cualquier archivo de dependencia binario . ¡Esto también funciona en las aplicaciones web de Azure!
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 desarrollar aplicaciones de bases de datos basadas en SQLite. Como parte del marco de desarrollo de aplicaciones 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 para SQLite presenta nuevos enfoques para diseñar la arquitectura de la aplicación, aumenta la productividad y aprovecha la implementación de la aplicación de la base de datos.
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
Respuestas:
Desde https://system.data.sqlite.org :
"System.Data.SQLite es el motor de base de datos SQLite original y un proveedor ADO.NET 2.0 completo, 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 dependencia del vinculador en el tiempo de ejecución de .NET, por lo que puede distribuirse independientemente de .NET ".
Incluso es compatible con Mono.
fuente
Aquí están los que puedo encontrar:
Fuentes:
fuente
Ahora también existe esta opción: http://code.google.com/p/csharp-sqlite/ : un puerto completo de SQLite a C #.
fuente
La gente de sqlite.org se ha hecho cargo del desarrollo del proveedor ADO.NET:
Desde su página de inicio :
La lista completa de características se puede encontrar en su wiki . Lo más destacado incluye
Las DLL publicadas se pueden descargar directamente desde el sitio .
fuente
Definitivamente iría con System.Data.SQLite (como se mencionó anteriormente: http://sqlite.phxsoftware.com/ )
Es coherente con ADO.NET (System.Data. *) Y se compila 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 administrada de C ++.
fuente
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 compilado 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 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 objetivos:
Las no metas incluyen:
fuente
Mono viene con una envoltura. https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 proporciona un código para envolver el dll 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 para .net. Funciona en Linux o Windows.
Este parece el más delgado de todos los mundos, minimizando su dependencia de las bibliotecas de terceros. Si tuviera que hacer este proyecto desde cero, esta es la forma en que lo haría.
fuente
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 de Apache, versión 2.0 .
* Descargo de responsabilidad: todavía no he intentado usar esto yo mismo, pero hay cierta documentación provista en Microsoft Docs aquí para usarlo con .NET Core y UWP.
fuente
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 compatibles 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 C #.
Es compatible con todas las características de SQLite cuando se utilizan comandos SQL, y también es compatible con la mayoría de las características de SQLite a través de .NET:
fuente
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 le permite usar los patrones habituales de ADO .NET con sqlite.
fuente
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 desarrollar aplicaciones de bases de datos basadas en SQLite. Como parte del marco de desarrollo de aplicaciones 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 para SQLite presenta nuevos enfoques para diseñar la arquitectura de la aplicación, aumenta la productividad y aprovecha la implementación de la aplicación de la base de datos.
Yo uso la versión estándar, funciona perfecto :)
fuente
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
fuente