Question

J'aimerais en quelque sorte utiliser SQLite depuis 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?

Était-ce utile?

La solution

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

  

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 maintenant principalement effectués par l’équipe de développement de 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 regroupés dans un seul assemblage en mode mixte. Il s'agit d'un remplacement instantané complet du fichier sqlite3.dll d'origine (vous pouvez même le renommer en sqlite3.dll). Contrairement aux assemblages mixtes normaux, il n’a aucune 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.

Autres conseils

Voici ceux que je peux trouver:

Sources:

Il existe également cette option: http://code.google.com/p/csharp -sqlite / - un portage complet de SQLite en C #.

Les membres de sqlite.org ont pris en charge le développement du fournisseur ADO.NET:

De leur page d'accueil :

  

Ceci est un fork du populaire ADO.NET   Adaptateur 4.0 pour SQLite appelé System.Data.SQLite. Le créateur de   System.Data.SQLite, Robert Simpson, est   conscient de cette fourche, a exprimé son   approbation, et a commettre des privilèges sur   le nouveau référentiel Fossil. Le SQLite   l'équipe de développement a l'intention de maintenir   System.Data.SQLite va de l'avant.

     

Les versions historiques, ainsi que le   forums de support originaux, peuvent encore être   trouvé à    http://sqlite.phxsoftware.com , bien que   il n'y a pas eu de mises à jour de cette   version depuis avril 2010.

La liste complète des fonctionnalités est disponible à l'adresse sur leur wiki . Les points forts incluent

  • Prise en charge d’ADO.NET 2.0
  • Prise en charge complète du cadre d'entité
  • Prise en charge complète du mono
  • Prise en charge de Visual Studio 2005/2008 au moment du design
  • Compact Framework, prise en charge de C / C ++

Les DLL publiées peuvent être téléchargées directement à partir de le site .

Je choisirais certainement System.Data.SQLite (comme indiqué précédemment: http: //sqlite.phxsoftware.com/ )

Il est cohérent avec ADO.NET (System.Data. *) et est compilé dans une seule DLL. Aucune sqlite3.dll - parce que le code C de SQLite est incorporé à System.Data.SQLite.dll. Un peu de magie gérée C ++.

sqlite-net est une bibliothèque minimale open source permettant aux applications .NET et Mono de stocker des données dans Bases de données SQLite 3 . Plus d'informations sur la page de wiki .

Il est écrit en C # et doit être simplement compilé avec vos projets. Il a d'abord été conçu pour fonctionner avec MonoTouch sur 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 deuxième package SQLite le plus populaire avec plus de 60 000 téléchargements. à partir de 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 over SQLite et devrait être rapide et efficace. (La bibliothèque ne doit pas constituer le goulet d'étranglement des performances de vos requêtes.)
  • Des méthodes très simples pour exécuter des opérations et des requêtes CRUD en toute sécurité (à l'aide de paramètres) et pour récupérer les résultats de cette requête de manière très typée.
  • Fonctionne avec votre modèle de données sans vous obliger à changer de classe. (Contient une petite couche ORM basée sur la réflexion.)
  • 0 dépendances en dehors d'une forme compilée de la bibliothèque sqlite2.

Les non-objectifs incluent:

  • N'est pas une implémentation ADO.NET. Ce n'est pas un pilote SQLite complet. Si vous en avez besoin, utilisez System.Data.SQLite.

Mono est livré avec un wrapper. https: // github .com / mono / mono / arbre / maître / mcs / classe / Mono.Data.Sqlite / Mono.Data.Sqlite_2.0 donne le code pour encapsuler 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/ ) dans une manière amicale de .net. Cela fonctionne sous Linux ou Windows.

Cela semble le plus mince de tous les mondes, minimisant votre dépendance aux bibliothèques tierces. Si je devais faire ce projet à partir de zéro, c’est comme ça que je le ferais.

Microsoft.Data.Sqlite

Microsoft fournit désormais Microsoft.Data.Sqlite en tant que solution SQLite exclusive pour .NET, fournie avec ASP.NET Core. La licence est la Licence Apache, version 2.0 .

* Clause de non-responsabilité: je n'ai pas encore essayé d'utiliser cette fonctionnalité moi-même, mais certains documents sont fournis sur Microsoft Docs ici pour l’utiliser avec .NET Core et UWP.

Pour ceux qui, comme moi, n’ont pas besoin ou ne veulent pas d’ADO.NET, ceux qui doivent exécuter un code plus proche de SQLite, mais tout de même compatible avec netstandard (.net framework, .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 ici sous forme de nuget https://www.nuget.org/packages/SqlNado mais également disponible sous forme de fichier .cs unique, il est donc très pratique à utiliser dans tout type de projet C #.

Il prend en charge toutes les fonctionnalités de SQLite lors de l'utilisation de commandes SQL, ainsi que la plupart des fonctionnalités de SQLite via .NET:

  • Mappage automatique de classe en table (Enregistrer, Supprimer, Charger, Charger tout, LoadByPrimaryKey, LoadByForeignKey, etc.)
  • Synchronisation automatique du schéma (tables, colonnes) entre les classes et la table existante
  • Conçu pour les opérations thread-safe
  • Où et à la commande LINQ / IQueryable, les expressions .NET 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 de mémoire élevée
  • Prise en charge des classements SQLite, y compris la possibilité d'ajouter des classements personnalisés à l'aide de code .NET
  • Prise en charge du moteur de recherche Full Text (FTS3) SQLite, y compris la possibilité d’ajouter des tokenizer FTS3 personnalisés à l’aide de code .NET (comme des 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 d'un fichier de dépendance binaire . Cela fonctionne également dans les applications Web Azure!.

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, fondamentalement, cela vous permet d’utiliser les modèles ADO .NET habituels avec sqlite.

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 de développement d'applications de base de données basées sur SQLite. Dans le cadre du cadre de développement des applications de base de données Devart, dotConnect for SQLite offre à la fois une connectivité native hautes performances à 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 la conception d’architecture d’application, augmente la productivité et exploite la mise en œuvre des applications de base de données.

J'utilise la version standard, cela fonctionne parfaitement:)

Un wrapper barebone des fonctions fourni par la bibliothèque sqlite. La dernière version prend en charge les fonctions fournies par la bibliothèque sqlite 3.7.10

Projet SQLiteWrapper

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top