mercoledì 29 aprile 2020

Error Entity Framework to SQlite wizard designer

Utilizzando Entity Framework con il database SQlite può verificarsi un problema durante il Wizard in particolare nel momento in cui si devono selezionare le tabelle.
Se l'errore è


Errore durante la connessione al database. È possibile che il database non sia disponibile. Eccezione di tipo 'System.InvalidCastException'. Messaggio di errore: 'Impossibile eseguire il cast di [A]System.Data.SQLite.SQLiteConnection a [B]System.Data.SQLite.SQLiteConnection. Il tipo A ha origine da 'System.Data.SQLite, Version=1.0.112.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' nel contesto 'Default' nella posizione 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\System.Data.SQLite\v4.0_1.0.112.0__db937bc2d44ff139\System.Data.SQLite.dll'. Il tipo B ha origine da 'System.Data.SQLite, Version=1.0.112.1, Culture=neutral, PublicKeyToken=db937bc2d44ff139' nel contesto 'LoadNeither' nella posizione 'C:\Users\nomeutente\AppData\Local\Microsoft\VisualStudio\16.0_3a1cb104\ProjectAssemblies\qw4nevj901\System.Data.SQLite.dll'.'.





La causa può essere il mancato riferimento della libreria "EntityFramework" che dovremmo sostituire con quella che abbiamo installato con il pacchetto di SqlLite dal seguente sito https://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

La soluzione riguarda quella di togliere come riferimento  le dll "System.Data.SQLite" , "System.Data.SQLite.EF6", "System.Data.SQLite.Linq" dal progetto, ed aggiungere il riferimento nel percorso dove abbiamo installato il pacchetto nel mio caso qui "C:\Program Files (x86)\System.Data.SQLite\2015\bin" selezionando come dll "System.Data.SQLite" , "System.Data.SQLite.EF6", "System.Data.SQLite.Linq" , mentre entity  .
Dopo averla aggiunta, compilare il programma e aggiungiamo un nuovo elemento di tipo "Ado.Net Entity Data Model" a questo punto sarà possibile visualizzare le tabelle del database, come nella seguente figura.






Nessun commento: