Existe-t-il un wrapper .NET / C # pour SQLite? [fermé]
267
J'aimerais en quelque sorte utiliser SQLite à partir de C # .Net, mais je n'arrive pas à trouver une bibliothèque appropriée. Est-ce qu'il y a un? Un officiel? Existe-t-il d'autres façons d'utiliser SQLite qu'avec un wrapper?
System.Data.SQLite est un adaptateur ADO.NET pour SQLite.
System.Data.SQLite a été lancé par Robert Simpson. Robert a toujours des privilèges de validation sur ce référentiel mais n'est plus un contributeur actif. Les travaux de développement et de maintenance sont désormais principalement effectués par l'équipe de développement SQLite. L'équipe SQLite s'engage à prendre en charge System.Data.SQLite à long terme.
"System.Data.SQLite est le moteur de base de données SQLite d'origine et un fournisseur ADO.NET 2.0 complet, tous regroupés en un seul assemblage en mode mixte. Il s'agit d'un remplacement complet pour le sqlite3.dll d'origine (vous pouvez même le renommer en sqlite3.dll). Contrairement aux assemblys mixtes normaux, il n'a pas de dépendance de l'éditeur de liens sur le runtime .NET, il peut donc être distribué indépendamment de .NET. "
C'est une vieille question mais j'ai dû ajouter mes 0,02 $. Roches System.Data.SQLite. Il est de qualité super raffinée, stable et commerciale. Mieux encore, il s'agit d'un code géré à 100% et a été publié en tant que code source du domaine public.
Nathan Ridley,
4
Juste pour la cohérence, parce que les gens parlent de deux choses différentes. Dans sqlite.phxsoftware.com, vous êtes dirigé vers sourceforge.net/projects/sqlite-dotnet2 pour le téléchargement.
yeyeyerman
16
Ce wrapper n'est plus développé par son auteur d'origine, et le développement semble avoir été repris par SQLite lui-même. Le nouveau site se trouve sur system.data.sqlite.org, bien qu'il semble actuellement moins convivial et plus en cours de travail que l'original.
mikel
5
@NathanRidley - Êtes-vous sûr qu'il est géré à 100%, car cette réponse indique que "System.Data.SQLite est le moteur de base de données SQLite original et un fournisseur ADO.NET 2.0 complet, tous réunis en un seul assemblage en mode mixte."
logicnp
2
Pour info, j'ai essayé d'utiliser le package Microsoft.Data.Sqlite .NET Standard Nuget de Microsoft, mais il a échoué sur une poignée de tests d'intégration dans la bibliothèque AsyncPoco Github. Après être passé à System.Data.SQLite, tout a parfaitement fonctionné.
Il s'agit d'un fork de l'adaptateur ADO.NET 4.0 pour SQLite connu sous le nom de System.Data.SQLite. Le créateur de System.Data.SQLite, Robert Simpson, est au courant de cette fourchette, a exprimé son approbation et a des privilèges de validation sur le nouveau référentiel Fossil. L'équipe de développement SQLite a l'intention de maintenir System.Data.SQLite à l'avenir.
Les versions historiques, ainsi que les forums de support d'origine, peuvent toujours être trouvés sur
http://sqlite.phxsoftware.com , bien qu'il n'y ait eu aucune mise à jour de cette version depuis avril 2010.
La liste complète des fonctionnalités peut être consultée sur leur wiki . Les faits saillants comprennent
Prise en charge d'ADO.NET 2.0
Prise en charge complète de l'entité Framework
Prise en charge Mono complète
Prise en charge de Visual Studio 2005/2008 Design-Time
Cadre compact, prise en charge C / C ++
Les DLL publiées peuvent être téléchargées directement à partir du site .
Il est cohérent avec ADO.NET (System.Data. *) Et est compilé en une seule DLL. Pas sqlite3.dll - parce que le code C de SQLite est incorporé dans System.Data.SQLite.dll. Un peu de magie C ++ managée.
sqlite-net est une bibliothèque open source minimale pour permettre aux applications .NET et Mono de stocker des données dans des bases de données SQLite 3 . Plus d'informations sur la page wiki .
Il est écrit en C # et est destiné à être simplement compilé avec vos projets. Il a d'abord été conçu pour fonctionner avec MonoTouch sur l'iPhone, mais a grandi pour fonctionner sur toutes les plateformes (Mono pour Android, .NET, Silverlight, WP7, WinRT, Azure, etc.).
Il est disponible sous forme de package Nuget , où il s'agit du 2e package SQLite le plus populaire avec plus de 60000 téléchargements en 2014.
sqlite-net a été conçu comme une couche de base de données rapide et pratique. Sa conception découle de ces objectifs:
Très facile à intégrer aux projets existants et aux projets MonoTouch.
Thin wrapper sur SQLite et doit être rapide et efficace. (La bibliothèque ne doit pas être le goulot d'étranglement des performances de vos requêtes.)
Méthodes très simples pour exécuter des opérations et des requêtes CRUD en toute sécurité (en utilisant des paramètres) et pour récupérer les résultats de ces requêtes de manière fortement typée.
Fonctionne avec votre modèle de données sans vous forcer à changer vos classes. (Contient une petite couche ORM pilotée par réflexion.)
0 dépendances à part une forme compilée de la bibliothèque sqlite2.
Les non-objectifs comprennent:
Pas une implémentation ADO.NET. Ce n'est pas un pilote SQLite complet. Si vous en avez besoin, utilisez System.Data.SQLite.
Je remarque que la plupart des commentaires antérieurs à 2014 indiquaient System.Data.SQLite que j'ai essayé d'installer sur mon application Windows Store (ne fonctionnait pas). Sqlite-net fonctionne.
Cela semble le plus mince de tous les mondes, minimisant votre dépendance vis-à-vis des bibliothèques tierces. Si je devais faire ce projet à partir de zéro, c'est comme ça que je le ferais.
Microsoft fournit désormais Microsoft.Data.Sqlite en tant que solution SQLite propriétaire pour .NET, qui est fournie dans le cadre d'ASP.NET Core. La licence est la licence Apache, version 2.0 .
* Avertissement: Je ne l' ai pas fait essayé d' utiliser ce encore moi - même, mais il y a une documentation fournie sur Microsoft Docs ici pour l' utiliser avec .NET Core UWP.
Pour ceux comme moi qui n'ont pas besoin ou ne veulent pas d'ADO.NET, ceux qui ont besoin d'exécuter du code plus près de SQLite, mais toujours compatible avec netstandard(framework .net, noyau .net, etc.), j'ai construit un Projet open source 100% gratuit appelé SQLNado (pour "Not ADO") disponible sur github ici:
Il est disponible en tant que nuget ici https://www.nuget.org/packages/SqlNado mais également disponible en tant que fichier .cs unique, il est donc assez pratique à utiliser dans n'importe quel type de projet C #.
Il prend en charge toutes les fonctionnalités SQLite lors de l'utilisation de commandes SQL et prend également en charge la plupart des fonctionnalités SQLite via .NET:
Synchronisation automatique du schéma (tables, colonnes) entre les classes et la table existante
Conçu pour les opérations sans fil
Où et OrderBy LINQ / IQueryable .NET expressions sont prises en charge (le travail est toujours en cours dans ce domaine), également avec la prise en charge du classement
Schéma de base de données SQLite (tables, colonnes, etc.) exposé à .NET
Les fonctions personnalisées SQLite peuvent être écrites en .NET
Les E / S BLOB incrémentielles SQLite sont exposées en tant que flux .NET pour éviter une consommation élevée de mémoire
Prise en charge du classement SQLite, y compris la possibilité d'ajouter des classements personnalisés à l'aide du code .NET
Prise en charge du moteur de recherche de texte intégral SQLite (FTS3), y compris la possibilité d'ajouter des jetons FTS3 personnalisés à l'aide du code .NET (comme les mots vides localisés par exemple). Je ne crois pas que d'autres wrappers .NET fassent cela.
Prise en charge automatique de Windows 'winsqlite3.dll' (uniquement sur les versions récentes de Windows) pour éviter l'envoi de tout fichier de dépendance binaire . Cela fonctionne également dans les applications Web Azure !.
dotConnect for SQLite est un fournisseur de données amélioré pour SQLite qui s'appuie sur la technologie ADO.NET pour présenter une solution complète pour le développement d'applications de base de données basées sur SQLite. Dans le cadre du développement de l'application de base de données Devart, dotConnect for SQLite offre à la fois une connectivité native haute performance à la base de données SQLite et un certain nombre d'outils et de technologies de développement innovants.
dotConnect for SQLite introduit de nouvelles approches pour concevoir l'architecture d'application, augmente la productivité et tire parti de la mise en œuvre des applications de base de données.
J'utilise la version standard, cela fonctionne parfaitement :)
Un wrapper barebones des fonctions fournies par la bibliothèque sqlite. La dernière version prend en charge les fonctions fournies bibliothèque sqlite 3.7.10
Réponses:
Depuis https://system.data.sqlite.org :
"System.Data.SQLite est le moteur de base de données SQLite d'origine et un fournisseur ADO.NET 2.0 complet, tous regroupés en un seul assemblage en mode mixte. Il s'agit d'un remplacement complet pour le sqlite3.dll d'origine (vous pouvez même le renommer en sqlite3.dll). Contrairement aux assemblys mixtes normaux, il n'a pas de dépendance de l'éditeur de liens sur le runtime .NET, il peut donc être distribué indépendamment de .NET. "
Il prend même en charge Mono.
la source
Voici ceux que je peux trouver:
Sources:
la source
Il y a aussi maintenant cette option: http://code.google.com/p/csharp-sqlite/ - un port complet de SQLite vers C #.
la source
Les gens de sqlite.org ont repris le développement du fournisseur ADO.NET:
Depuis leur page d'accueil :
La liste complète des fonctionnalités peut être consultée sur leur wiki . Les faits saillants comprennent
Les DLL publiées peuvent être téléchargées directement à partir du site .
la source
J'irais certainement avec System.Data.SQLite (comme mentionné précédemment: http://sqlite.phxsoftware.com/ )
Il est cohérent avec ADO.NET (System.Data. *) Et est compilé en une seule DLL. Pas sqlite3.dll - parce que le code C de SQLite est incorporé dans System.Data.SQLite.dll. Un peu de magie C ++ managée.
la source
sqlite-net est une bibliothèque open source minimale pour permettre aux applications .NET et Mono de stocker des données dans des bases de données SQLite 3 . Plus d'informations sur la page wiki .
Il est écrit en C # et est destiné à être simplement compilé avec vos projets. Il a d'abord été conçu pour fonctionner avec MonoTouch sur l'iPhone, mais a grandi pour fonctionner sur toutes les plateformes (Mono pour Android, .NET, Silverlight, WP7, WinRT, Azure, etc.).
Il est disponible sous forme de package Nuget , où il s'agit du 2e package SQLite le plus populaire avec plus de 60000 téléchargements en 2014.
sqlite-net a été conçu comme une couche de base de données rapide et pratique. Sa conception découle de ces objectifs:
Les non-objectifs comprennent:
la source
Mono est livré avec un emballage. https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 donne le code pour envelopper la DLL SQLite réelle ( http: //www.sqlite. org / sqlite-shell-win32-x86-3071300.zip trouvé sur la page de téléchargement http://www.sqlite.org/download.html/ ) de manière conviviale .net. Cela fonctionne sous Linux ou Windows.
Cela semble le plus mince de tous les mondes, minimisant votre dépendance vis-à-vis des bibliothèques tierces. Si je devais faire ce projet à partir de zéro, c'est comme ça que je le ferais.
la source
Microsoft.Data.Sqlite
Microsoft fournit désormais Microsoft.Data.Sqlite en tant que solution SQLite propriétaire pour .NET, qui est fournie dans le cadre d'ASP.NET Core. La licence est la licence Apache, version 2.0 .
* Avertissement: Je ne l' ai pas fait essayé d' utiliser ce encore moi - même, mais il y a une documentation fournie sur Microsoft Docs ici pour l' utiliser avec .NET Core UWP.
la source
Pour ceux comme moi qui n'ont pas besoin ou ne veulent pas d'ADO.NET, ceux qui ont besoin d'exécuter du code plus près de SQLite, mais toujours compatible avec
netstandard
(framework .net, noyau .net, etc.), j'ai construit un Projet open source 100% gratuit appelé SQLNado (pour "Not ADO") disponible sur github ici:https://github.com/smourier/SQLNado
Il est disponible en tant que nuget ici https://www.nuget.org/packages/SqlNado mais également disponible en tant que fichier .cs unique, il est donc assez pratique à utiliser dans n'importe quel type de projet C #.
Il prend en charge toutes les fonctionnalités SQLite lors de l'utilisation de commandes SQL et prend également en charge la plupart des fonctionnalités SQLite via .NET:
la source
La version 1.2 de Monotouch inclut la prise en charge de System.Data. Vous pouvez trouver plus de détails ici: http://monotouch.net/Documentation/System.Data
Mais en gros, cela vous permet d'utiliser les modèles ADO .NET habituels avec sqlite.
la source
http://www.devart.com/dotconnect/sqlite/
dotConnect for SQLite est un fournisseur de données amélioré pour SQLite qui s'appuie sur la technologie ADO.NET pour présenter une solution complète pour le développement d'applications de base de données basées sur SQLite. Dans le cadre du développement de l'application de base de données Devart, dotConnect for SQLite offre à la fois une connectivité native haute performance à la base de données SQLite et un certain nombre d'outils et de technologies de développement innovants.
dotConnect for SQLite introduit de nouvelles approches pour concevoir l'architecture d'application, augmente la productivité et tire parti de la mise en œuvre des applications de base de données.
J'utilise la version standard, cela fonctionne parfaitement :)
la source
Un wrapper barebones des fonctions fournies par la bibliothèque sqlite. La dernière version prend en charge les fonctions fournies bibliothèque sqlite 3.7.10
Projet SQLiteWrapper
la source