"System.NotSupportedException: 'Unable to determine the provider name for provider factory of type 'System.Data.SQLite.SQLiteFactory'. Make sure that the ADO.NET provider is installed or registered in the application config.'
"
Come mostrato in figura qui di seguito.
Questo è dovuto perchè nel file di configurazione della app.config non abbiamo messo gli opportuni tag di riferimento alle librerie.
Per
risolvere questo problema, dobbiamo intervenire nel file app.config, in
particolare “providers” dove andranno aggiunti altri tag e
nella sezione “DbProviderFactories” .
Nel providers
avremo un codice simile a questo:
<entityFramework>
<providers>
<provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices,
System.Data.SQLite.EF6" />
</providers>
</entityFramework>
Che diventa
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices,
EntityFramework.SqlServer"/>
<provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices,
System.Data.SQLite.EF6" />
<provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices,
System.Data.SQLite.EF6"/>
</providers>
</entityFramework>
Con l’aggiunta
di due tag .
Mentre per “DbProviderFactories” avremo questo codice:
<system.data>
<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" />
</DbProviderFactories>
</system.data>
Che diventa:
<system.data>
<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>
</system.data>
Con l’aggiunta
di altri tag di tipo remove.
A questo punto non ci resta che eseguire il nostro applicativo.
Nessun commento:
Posta un commento