Suche…


Einführung

SQLite ist eine eigenständige, serverlose, transaktionale SQL-Datenbank. Es kann in einer .NET-Anwendung verwendet werden, indem sowohl eine frei verfügbare .NET SQLite-Bibliothek als auch ein Entity Framework SQLite-Anbieter verwendet wird. Dieses Thema befasst sich mit der Einrichtung und Verwendung des Entity Framework SQLite-Anbieters.

Einrichten eines Projekts zur Verwendung von Entity Framework mit einem SQLite-Anbieter

Die Entity Framework-Bibliothek wird nur mit einem SQL Server-Anbieter geliefert. Für die Verwendung von SQLite sind zusätzliche Abhängigkeiten und Konfigurationen erforderlich. Alle erforderlichen Abhängigkeiten sind in NuGet verfügbar.

Installieren Sie verwaltete SQLite-Bibliotheken

Alle manipulierten Versionen können mithilfe der NuGet Package Manager Console installiert werden. Führen Sie den Befehl Install-Package System.Data.SQLite .

System.Data.SQLite installieren

Wie oben gezeigt, werden bei der Installation von System.Data.SQLite alle verwalteten verwalteten Bibliotheken zusammen mit diesem installiert. Dies umfasst System.Data.SQLite.EF6 , den EF-Anbieter für SQLite. Das Projekt verweist jetzt auch auf die Assemblys, die zur Verwendung des SQLite-Providers erforderlich sind.

Projektreferenzen

Einschließlich der nicht verwalteten Bibliothek

Die von SQLite verwalteten Bibliotheken sind von einer nicht verwalteten Assembly mit dem Namen SQLite.Interop.dll . Es ist in den Paketassemblys enthalten, die mit dem SQLite-Paket heruntergeladen wurden. Diese werden beim Erstellen des Projekts automatisch in Ihr Build-Verzeichnis kopiert. Da es jedoch nicht verwaltet wird, wird es nicht in Ihre Referenzliste aufgenommen. Beachten Sie jedoch, dass diese Assembly meistens mit der Anwendung verteilt wird, damit die SQLite-Assemblys funktionieren.

Hinweis: Diese Assembly ist bitabhängig, dh Sie müssen für jede zu unterstützende Bitness (x86 / x64) eine spezifische Assembly einfügen.

Bearbeiten der App.config des Projekts

Die Datei app.config erfordert einige Änderungen, bevor SQLite als Entity Framework-Anbieter verwendet werden kann.

Erforderliche Korrekturen

Bei der Installation des Pakets wird die Datei app.config automatisch aktualisiert, um die erforderlichen Einträge für SQLite und SQLite EF aufzunehmen. Leider enthalten diese Einträge einige Fehler. Sie müssen modifiziert werden, bevor es korrekt funktioniert.

DbProviderFactories das DbProviderFactories Element in der Konfigurationsdatei. Es befindet sich im Element system.data und enthält Folgendes

<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>

Dies kann vereinfacht werden, um einen einzelnen Eintrag zu enthalten

<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>

Damit haben wir festgelegt, dass die EF6-SQLite-Anbieter die SQLite-Factory verwenden sollen.

Fügen Sie die SQLite-Verbindungszeichenfolge hinzu

Verbindungszeichenfolgen können der Konfigurationsdatei innerhalb des Root-Elements hinzugefügt werden. Fügen Sie eine Verbindungszeichenfolge für den Zugriff auf eine SQLite-Datenbank hinzu.

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

Wichtig hierbei ist der provider . Es wurde auf System.Data.SQLite.EF6 . Dies teilt EF mit, dass bei Verwendung dieser Verbindungszeichenfolge SQLite verwendet werden soll. Die angegebene data source ist nur ein Beispiel und hängt vom Speicherort und Namen Ihrer SQLite-Datenbank ab.

Ihr erster SQLite DbContext

DbContext die Installation und Konfiguration abgeschlossen ist, können Sie jetzt einen DbContext , der für Ihre SQLite-Datenbank verwendet werden kann.

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

Durch die Angabe von name=TestContext ich app.config , dass die TestContext-Verbindungszeichenfolge in der Datei app.config zum Erstellen des Kontexts verwendet werden soll. Diese Verbindungszeichenfolge wurde für die Verwendung von SQLite konfiguriert. In diesem Kontext wird eine SQLite-Datenbank verwendet.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow