Update ReadMe.md

EFCore3_Reforged
Marc CHEVALDONNE 4 years ago
parent 2eacf6212e
commit 481c8d1949

@ -7,7 +7,7 @@
Lorsqu'on cherche à tester notre code et nos accès à la base de données, on n'a pas nécessairement envie de créer la base juste pour les tests.
Pour cela, il existe des solutions et des fournisseurs permettant de tester les bases sans avoir à réellement les créer :
* le fournisseur **InMemory** permet ceci mais de manière approximative, car **InMemory** n'est pas une base de données relationnelle : il y a donc des limitations.
* **SQLite** possède un mode *In-Memory* qui lui, permet de tester une base de données relationnelle, sans avoir à créer une base de données.
* **SQLite** possède un mode *In-Memory* qui lui, permet de tester une base de données relationnelle, sans avoir à créer une base de données.
**Je conseille donc l'utilisation de _SQL in Memory_ plutôt que InMemory, puisqu'il permet de tester une base relationnelle.**
@ -185,16 +185,16 @@ Vous pouvez vérifier le contenu de votre base en utilisant l'*Explorateur d'obj
L'application console .NET Core **ex_041_004_ConsoleTests_w_SQLite** fait référence à la bibliothèque .NET Standard précédente pour pouvoir consommer ```Nounours``` et ```SQLiteNounoursContext```.
Ses deux seules classes sont donc ```Program``` et ```SQLiteNounoursContext``` et sont codées de la manière suivante :
```csharp
using System;
using System;
using ex_041_004_TestingInMemory;
using Microsoft.EntityFrameworkCore;
namespace ex_041_004_ConsoleTests_w_SQLite
{
class Program
{
static void Main(string[] args)
{
namespace ex_041_004_ConsoleTests_w_SQLite
{
class Program
{
static void Main(string[] args)
{
Nounours chewie = new Nounours { Nom = "Chewbacca" };
Nounours yoda = new Nounours { Nom = "Yoda" };
Nounours ewok = new Nounours { Nom = "Ewok" };
@ -207,10 +207,10 @@ namespace ex_041_004_ConsoleTests_w_SQLite
context.Add(yoda);
context.Add(ewok);
context.SaveChanges();
}
}
}
}
}
}
public class SQLiteNounoursContext : NounoursContext
{
protected override void OnConfiguring(DbContextOptionsBuilder options)
@ -220,10 +220,10 @@ namespace ex_041_004_ConsoleTests_w_SQLite
options.UseSqlite($"Data Source=ex_041_004_SQLite.Nounours.db");
}
}
}
}
}
```
La classe ``SQLiteNounoursContext``` a pour but de permettre l'appel de ```dotnet ef``` sans avoir à utiliser le ```NounoursContext``` qui utilise SqlServer. En effet, pour pouvoir
La classe ```SQLiteNounoursContext``` a pour but de permettre l'appel de ```dotnet ef``` sans avoir à utiliser le ```NounoursContext``` qui utilise SqlServer. En effet, pour pouvoir
mettre à jour la base SQLite, EFCore demande pour le moment, un ```DbContext``` correspondant à la base à mettre à jour dans la méthode ```OnConfiguring```.
Pour tester cette application, n'oubliez pas les commandes comme présentées dans l'exemple ex_041_001 : pour générer l'exemple, il vous faut d'abord préparer les migrations et les tables.

Loading…
Cancel
Save