Recherche…


Introduction

SQLite est une base de données SQL transactionnelle autonome et sans serveur. Il peut être utilisé dans une application .NET en utilisant à la fois une bibliothèque .NET SQLite disponible gratuitement et un fournisseur Entity Framework SQLite. Cette rubrique entrera dans la configuration et l'utilisation du fournisseur Entity Framework SQLite.

Configuration d'un projet pour utiliser Entity Framework avec un fournisseur SQLite

La bibliothèque Entity Framework est fournie uniquement avec un fournisseur SQL Server. Utiliser SQLite nécessitera des dépendances et une configuration supplémentaires. Toutes les dépendances requises sont disponibles sur NuGet.

Installer les bibliothèques gérées SQLite

Toutes les dépendances managées peuvent être installées à l'aide de la console NuGet Package Manager. Exécutez la commande Install-Package System.Data.SQLite .

Installation de System.Data.SQLite

Comme indiqué ci-dessus, lors de l'installation de System.Data.SQLite , toutes les bibliothèques gérées associées sont installées avec elle. Cela inclut System.Data.SQLite.EF6 , le fournisseur EF pour SQLite. Le projet fait également maintenant référence aux assemblys requis pour utiliser le fournisseur SQLite.

Références du projet

Y compris la bibliothèque non gérée

Les bibliothèques gérées SQLite dépendent d'un assembly non géré nommé SQLite.Interop.dll . Il est inclus dans les assemblys de packages téléchargés avec le package SQLite et ils sont automatiquement copiés dans votre répertoire de génération lorsque vous générez le projet. Cependant, comme il n'est pas géré, il ne sera pas inclus dans votre liste de références. Mais notez que cet assemblage est le plus distribué avec l'application pour que les assemblys SQLite fonctionnent.

Remarque: Cet assemblage dépend des bits, ce qui signifie que vous devrez inclure un assemblage spécifique pour chaque bitness que vous prévoyez de prendre en charge (x86 / x64).

Modifier le fichier App.config du projet

Le fichier app.config nécessitera certaines modifications avant que SQLite puisse être utilisé en tant que fournisseur Entity Framework.

Correctifs requis

Lors de l'installation du package, le fichier app.config est automatiquement mis à jour pour inclure les entrées nécessaires pour SQLite et SQLite EF. Malheureusement, ces entrées contiennent des erreurs. Ils doivent être modifiés avant de fonctionner correctement.

Tout d'abord, DbProviderFactories élément DbProviderFactories dans le fichier de configuration. Il se trouve dans l'élément system.data et contiendra les éléments suivants

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

Cela peut être simplifié pour contenir une seule entrée

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

Avec cela, nous avons spécifié que les fournisseurs EF6 SQLite devraient utiliser l’usine SQLite.

Ajouter une chaîne de connexion SQLite

Les chaînes de connexion peuvent être ajoutées au fichier de configuration dans l'élément racine. Ajoutez une chaîne de connexion pour accéder à une base de données SQLite.

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

La chose importante à noter ici est le provider . Il a été défini sur System.Data.SQLite.EF6 . Cela indique à EF que lorsque nous utilisons cette chaîne de connexion, nous voulons utiliser SQLite. La data source spécifiée n'est qu'un exemple et dépendra de l'emplacement et du nom de votre base de données SQLite.

Votre premier SQLite DbContext

Une fois l'installation et la configuration terminées, vous pouvez maintenant commencer à utiliser DbContext qui fonctionnera sur votre base de données SQLite.

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

En spécifiant name=TestContext , j'ai indiqué que la chaîne de connexion TestContext située dans le fichier app.config doit être utilisée pour créer le contexte. Cette chaîne de connexion a été configurée pour utiliser SQLite, ce contexte utilisera donc une base de données SQLite.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow