Ricerca…


introduzione

SQLite è un database SQL transazionale e indipendente dal server. Può essere utilizzato all'interno di un'applicazione .NET utilizzando sia una libreria SQLite .NET disponibile gratuitamente sia un provider SQLite di Entity Framework. Questo argomento riguarda l'installazione e l'utilizzo del provider SQLite di Entity Framework.

Impostazione di un progetto per utilizzare Entity Framework con un provider SQLite

La libreria Entity Framework viene fornita solo con un provider SQL Server. Per utilizzare SQLite saranno necessarie dipendenze aggiuntive e configurazione. Tutte le dipendenze richieste sono disponibili su NuGet.

Installa librerie gestite SQLite

È possibile installare tutte le dipendenze modificate utilizzando la console NuGet Package Manager. Esegui il comando Install-Package System.Data.SQLite .

Installazione di System.Data.SQLite

Come mostrato sopra, durante l'installazione di System.Data.SQLite , tutte le relative librerie gestite vengono installate con esso. Ciò include System.Data.SQLite.EF6 , il provider EF per SQLite. Il progetto ora fa riferimento anche agli assembly necessari per utilizzare il provider SQLite.

Riferimenti di progetto

Inclusa libreria non gestita

Le librerie gestite da SQLite dipendono da un assembly non gestito denominato SQLite.Interop.dll . È incluso negli assembly del pacchetto scaricati con il pacchetto SQLite e viene copiato automaticamente nella directory di build quando si crea il progetto. Tuttavia, poiché non è gestito, non sarà incluso nel tuo elenco di riferimento. Ma tenete presente che questo assembly viene distribuito per lo più con l'applicazione per gli assembly SQLite.

Nota: questo assembly dipende dal bit, il che significa che è necessario includere un assembly specifico per ciascun bitness che si intende supportare (x86 / x64).

Modifica del file App.config del progetto

Il file app.config richiederà alcune modifiche prima che SQLite possa essere utilizzato come un provider di Entity Framework.

Correzioni richieste

Quando si installa il pacchetto, il file app.config viene automaticamente aggiornato per includere le voci necessarie per SQLite e SQLite EF. Sfortunatamente queste voci contengono alcuni errori. Devono essere modificati prima che funzioni correttamente.

Innanzitutto, individuare l'elemento DbProviderFactories nel file di configurazione. È all'interno dell'elemento system.data e conterrà quanto segue

<DbProviderFactories>
  <remove invariant="System.Data.SQLite.EF6" />
  <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
  <remove invariant="System.Data.SQLite" /><add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>

Questo può essere semplificato per contenere una singola voce

<DbProviderFactories>
    <add name="SQLite Data Provider" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>

Con questo, abbiamo specificato che i fornitori di SQLite EF6 dovrebbero utilizzare la fabbrica SQLite.

Aggiungi una stringa di connessione SQLite

Le stringhe di connessione possono essere aggiunte al file di configurazione all'interno dell'elemento root. Aggiungi una stringa di connessione per accedere a un database SQLite.

<connectionStrings>
    <add name="TestContext" connectionString="data source=testdb.sqlite;initial catalog=Test;App=EntityFramework;" providerName="System.Data.SQLite.EF6"/>
</connectionStrings>

La cosa importante da notare qui è il provider . È stato impostato su System.Data.SQLite.EF6 . Questo dice a EF che quando usiamo questa stringa di connessione, vogliamo usare SQLite. L' data source specificata è solo un esempio e dipenderà dalla posizione e dal nome del database SQLite.

Il tuo primo DbContext SQLite

Completata l'installazione e la configurazione, ora puoi iniziare a utilizzare un DbContext che funzionerà sul tuo database SQLite.

public class TestContext : DbContext
{
    public TestContext()
        : base("name=TestContext") { }
}

Specificando name=TestContext , ho indicato che la stringa di connessione TestContext che si trova nel file app.config dovrebbe essere utilizzata per creare il contesto. Quella stringa di connessione è stata configurata per utilizzare SQLite, quindi questo contesto utilizzerà un database SQLite.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow