Domanda

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

È stato utile?

Soluzione

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 collaboratore attivo.Il lavoro di sviluppo e manutenzione viene ora eseguito principalmente dal team di sviluppo SQLite.Il team 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, il tutto racchiuso in un unico assembly in modalità mista.È un sostituto completo e immediato dell'originale sqlite3.dll (puoi anche rinominarlo sqlite3.dll).A differenza dei normali assembly misti, non ha alcuna dipendenza del linker dal runtime .NET, quindi può essere distribuito indipendentemente da .NET."

Supporta anche Mono.

Altri suggerimenti

Ecco quelli che posso trovare:

Fonti:

Ora c'è anche questa opzione: http://code.google.com/p/csharp-sqlite/ - un port completo di SQLite in C#.

Le persone di sqlite.org hanno preso in carico lo sviluppo del provider ADO.NET:

Da la loro home page:

Questa è una forchetta del popolare adattatore Ado.NET 4.0 per SQLite noto come System.Data.sqlite.L'originatore di System.data.sqlite, Robert Simpson, è a conoscenza di questa forcella, ha espresso la sua approvazione e ha privilegi di impegno sul nuovo repository fossili.Il team di sviluppo SQLite intende mantenere System.Data.SQLite andando avanti.

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

L'elenco completo delle funzionalità è disponibile su sulla loro wiki.I punti salienti includono

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

Le DLL rilasciate possono essere scaricate direttamente da il sito.

Ci andrei sicuramente System.Data.SQLite (Come precedentemente menzionato: http://sqlite.phxsoftware.com/)

È coerente con ADO.NET (System.Data.*) ed è compilato in un'unica 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 minima open source per consentire alle applicazioni .NET e Mono di archiviare dati Database SQLite3.Maggiori informazioni su pagina wiki.

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

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

sqlite-net è stato progettato come un livello di database rapido e conveniente.La sua progettazione deriva da questi obiettivi:

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

I non obiettivi includono:

  • Non un'implementazione ADO.NET.Questo non è un driver SQLite completo.Se ne hai bisogno, usa System.Data.SQLite.

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

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

Microsoft.Data.Sqlite

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

* Disclaimer:In realtà non ho ancora provato a usarlo personalmente, ma è disponibile della documentazione su Microsoft Docs Qui per usarlo con .NET Core e UWP.

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

https://github.com/smourier/SQLNado

È disponibile come nuget qui https://www.nuget.org/packages/SqlNado ma disponibile anche come singolo file .cs, quindi è abbastanza pratico da utilizzare in qualsiasi tipo di progetto C#.

Supporta tutte le funzionalità di SQLite quando si utilizzano comandi SQL e supporta anche la maggior parte delle funzionalità di SQLite tramite .NET:

  • Mappatura automatica da classe a tabella (Salva, Elimina, Carica, Carica tutto, LoadByPrimaryKey, LoadByForeignKey, ecc.)
  • Sincronizzazione automatica dello schema (tabelle, colonne) tra classi e tabelle esistenti
  • Progettato per operazioni thread-safe
  • Sono supportate le espressioni Where e OrderBy LINQ/IQueryable .NET (il lavoro è ancora in corso in quest'area), anche con il supporto delle regole di confronto
  • Schema del database SQLite (tabelle, colonne, ecc.) esposto a .NET
  • Le funzioni personalizzate SQLite possono essere scritte in .NET
  • L'I/O BLOB incrementale di SQLite viene esposto come flusso .NET per evitare un consumo elevato di memoria
  • Supporto delle regole di confronto SQLite, inclusa la possibilità di aggiungere regole di confronto personalizzate utilizzando il codice .NET
  • Supporto per il motore di ricerca full text SQLite (FTS3), inclusa la possibilità di aggiungere tokenizzatori FTS3 personalizzati utilizzando il codice .NET (come ad esempio parole stop localizzate).Non credo che nessun altro wrapper .NET lo faccia.
  • Supporto automatico per Windows 'winsqlite3.dll' (solo nelle versioni recenti di Windows) a evitare di spedire qualsiasi dipendenza binaria file.Funziona anche nelle app Web di Azure!.

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

Ma fondamentalmente ti permette di usare i soliti pattern 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 di applicazioni di database Devart, dotConnect per SQLite offre sia connettività nativa ad alte prestazioni al database SQLite sia una serie di strumenti e tecnologie di sviluppo innovativi.

dotConnect for SQLite introduce nuovi approcci per la progettazione dell'architettura delle applicazioni, aumenta la produttività e sfrutta l'implementazione delle applicazioni di database.

Io uso la versione standard, funziona perfettamente :)

Un wrapper essenziale delle funzioni fornite dalla libreria sqlite.L'ultima versione supporta le funzioni fornite dalla libreria sqlite 3.7.10

Progetto SQLiteWrapper

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top