Esiste un wrapper .NET / C # per SQLite?

Mi piacerebbe usare SQLite da C # .Net, ma non riesco a trovare una libreria appropriata. Ce n’è uno? Uno ufficiale? Esistono altri modi per utilizzare SQLite rispetto a un wrapper?

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

System.Data.SQLite è un adattatore ADO.NET per SQLite.

System.Data.SQLite è stato avviato da Robert Simpson. Robert ha ancora i privilegi di commit su questo repository ma non è più un contributore attivo. I lavori di sviluppo e manutenzione vengono ora eseguiti principalmente dal team di sviluppo SQLite. Il team di SQLite si impegna a supportare System.Data.SQLite a lungo termine.

“System.Data.SQLite è il motore di database SQLite originale e un provider ADO.NET 2.0 completo, tutti raggruppati in un unico assembly in modalità mista: si tratta di una sostituzione completa per il file sqlite3.dll originale (si può anche rinominarlo in sqlite3.dll). A differenza dei normali assembly misti, non ha alcuna dipendenza da linker sul runtime .NET, quindi può essere distribuito indipendentemente da .NET. ”

Supporta anche Mono.

Ecco quelli che riesco a trovare:

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

fonti:

  • sqlite.org
  • altri poster

C’è anche ora questa opzione: http://code.google.com/p/csharp-sqlite/ – una porta completa di SQLite in C #.

I membri di sqlite.org hanno assunto lo sviluppo del provider ADO.NET:

Dalla loro homepage :

Questo è un fork del popolare adattatore ADO.NET 4.0 per SQLite noto come System.Data.SQLite. L’autore di System.Data.SQLite, Robert Simpson, è a conoscenza di questo fork, ha express la sua approvazione e ha privilegi di commit sul nuovo repository Fossil. Il team di sviluppo di SQLite intende mantenere System.Data.SQLite andando avanti.

Le versioni storiche, così come i forum di supporto originali, possono ancora essere trovati su http://sqlite.phxsoftware.com , sebbene non ci siano stati aggiornamenti a questa versione da aprile 2010.

L’elenco completo delle funzionalità è disponibile sul proprio wiki . I punti salienti includono

  • Supporto ADO.NET 2.0
  • Supporto di Full Entity Framework
  • Supporto completo mono
  • Supporto in fase di progettazione di Visual Studio 2005/2008
  • Compact Framework, supporto C / C ++

Le DLL rilasciate possono essere scaricate direttamente dal sito .

Mi piacerebbe sicuramente andare con System.Data.SQLite (come già accennato: http://sqlite.phxsoftware.com/ )

È coerente con ADO.NET (System.Data. *) Ed è compilato in una singola DLL. No sqlite3.dll – perché il codice C di SQLite è incorporato in System.Data.SQLite.dll. Un po ‘di magia C ++ gestita.

sqlite-net è una libreria open source e minimale per consentire alle applicazioni .NET e Mono di archiviare i dati nei database SQLite 3 . Maggiori informazioni sulla pagina wiki .

È scritto in C # ed è pensato per essere semplicemente compilato con i tuoi progetti. È stato progettato inizialmente per funzionare con MonoTouch su iPhone, ma è cresciuto fino a funzionare su tutte le piattaforms (Mono per Android, .NET, Silverlight, WP7, WinRT, Azure, ecc.).

È disponibile come pacchetto Nuget , dove è il secondo pacchetto SQLite più popolare con oltre 60.000 download a partire dal 2014.

sqlite-net è stato progettato come un livello di database rapido e conveniente. Il suo design deriva da questi obiettivi:

  • Molto facile da integrare con progetti esistenti e con progetti MonoTouch.
  • Thin wrapper su SQLite e dovrebbe essere veloce ed efficiente. (La libreria non deve essere il collo di bottiglia delle prestazioni delle tue query.)
  • Metodi molto semplici per eseguire in modo sicuro le operazioni e le query CRUD (utilizzando i parametri) e per recuperare i risultati di tali query in modo fortemente tipizzato.
  • Funziona con il tuo modello di dati senza costringerti a cambiare class. (Contiene un piccolo strato ORM orientato alla riflessione.)
  • 0 dipendenze oltre a un modulo compilato della libreria sqlite2.

I non obiettivi includono:

  • Non è un’implementazione ADO.NET. Questo non è un driver SQLite completo. Se necessario, utilizzare System.Data.SQLite.

Mono viene fornito con un wrapper. https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 fornisce il codice per avvolgere la dll SQLite effettiva ( http: //www.sqlite. org / sqlite-shell-win32-x86-3071300.zip si trova nella pagina di download http://www.sqlite.org/download.html/ ) in un modo amichevole .net. Funziona su Linux o Windows.

Questo sembra il più sottile di tutti i mondi, riducendo al minimo la dipendenza da librerie di terze parti. Se dovessi fare questo progetto da zero, questo è il modo in cui lo farei.

Microsoft.Data.Sqlite

Microsoft ora fornisce Microsoft.Data.Sqlite come soluzione SQLite di prima qualità per .NET, fornita come parte di ASP.NET Core. La licenza è la licenza Apache, versione 2.0 .

  • Pacchetto NuGet
  • Repository di origine su GitHub

* Disclaimer: in realtà non ho ancora provato a usarlo, ma qui c’è una documentazione fornita da Microsoft Docs per usarlo con .NET Core e UWP.

Per quelli come me che non hanno bisogno o non vogliono ADO.NET, quelli che hanno bisogno di eseguire codice più vicino a SQLite, ma comunque compatibili con netstandard (.net framework, .net core, ecc.), Ho costruito un progetto open source gratuito al 100% chiamato SQLNado (per “Not ADO”) disponibile su github qui:

https://github.com/smourier/SQLNado

Nota: non è disponibile come nuget oggi, ma come un singolo file .cs, quindi è abbastanza pratico da usare in qualsiasi tipo di progetto C #.

La versione 1.2 di Monotouch include il supporto per System.Data. Puoi trovare maggiori dettagli qui: http://monotouch.net/Documentation/System.Data

Ma in pratica ti permette di usare i soliti schemi ADO .NET con sqlite.

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

dotConnect for SQLite è un fornitore di dati avanzato per SQLite che si basa sulla tecnologia ADO.NET per presentare una soluzione completa per lo sviluppo di applicazioni di database basate su SQLite. Come parte del framework di sviluppo dell’applicazione database Devart, dotConnect for SQLite offre sia connettività nativa ad alte prestazioni per il database SQLite sia una serie di strumenti e tecnologie di sviluppo innovativi.

dotConnect per SQLite introduce nuovi approcci per la progettazione dell’architettura delle applicazioni, aumenta la produttività e sfrutta l’implementazione dell’applicazione del database.

Io uso la versione standard, funziona perfettamente 🙂

Un wrapper barebone delle funzioni fornito dalla libreria sqlite. L’ultima versione supporta le funzioni fornite dalla libreria sqlite 3.7.10

Progetto SQLiteWrapper