pour avoir un provider par défaut, mais la possibilité d'en injecter un autre via un constructeur
le constructeur par défaut permettra d'utiliser la version par défaut
on utilise pour ça la propriété IsConfigured
On la modifie pour permettre d'injecter un autre fournisseur, tout en gardant celui-ci par défaut. On peut utiliser pour cela la propriété ```IsConfigured``` sur ```DbContextOptionsBuilder```.
La méthode ```OnConfiguring``` de ```NounoursContext``` est alors modifiée de la manière suivante :
Dès lors, si rien n'est configuré, c'est donc le fournisseur *SqlServer* qui sera utilisé.
Mais nous pouvons aussi permettre à l'utilisateur d'en injecter un autre. Pour cela, nous ajoutons deux constructeurs à notre classe :
* ```NounoursContext()``` : le constructeur par défaut ne fait rien, et en conséquence fera que la configuration *SqlServer* sera utilisée,
* ```NounoursContext(DbContextOptions<NounoursContext> options)``` : ce constructeur par défaut permettra d'injecter une autre fabrique de fournisseur, et permettra à l'utilisateur d'injecter n'importe quel autre fournisseur, dont **InMemory**.
Les constructeurs injectés sont donc :
```csharp
public SqlServerContext()
public NounoursContext()
{ }
public SqlServerContext(DbContextOptions<SqlServerContext> options)
public NounoursContext(DbContextOptions<NounoursContext> options)
: base(options)
{ }
```
La classe ```NounoursContext``` peut donc s'utiliser comme précédemment, sans changement, et la base *SqlServer* sera utilisée ; ou alors, on pourra injecter un autre fournisseur.
## Configuration du test unitaire
Le test unitaire est de type *xUnit* et va permettre d'injecter le fournisseur **InMemory**.