2010-11-18 23 views
13

Ecco il codice che genera l'eccezioneImpossibile creare il driver dal NHibernate.Driver.SQLite20Driver

public Configuration GetConfiguration() 
    { 
     var persister = SQLiteConfiguration 
      .Standard 
      .UsingFile("Test.db") 
      .ShowSql(); 


     var configuration = Fluently 
      .Configure() 
      .Database(persister) 
      .Mappings(map => map.FluentMappings.AddFromAssemblyOf<WordMap>()) 
      .BuildConfiguration(); 

     new SchemaExport(configuration).Execute(true, true, false); 

     return configuration; 

    } 

Il testo completo eccezione:

Fallimento: NHibernate.HibernateException: Impossibile creare il driver da NHibernate.Driver.SQLite20Driver, NHibernate, versione = 2.1.2.4000, Culture = neutro, PublicKeyToken = aa95f207798dfdb4.

----> System.Reflection.TargetInvocationException: l'eccezione di una chiamata è stata lanciata dalla destinazione.

----> NHibernate.HibernateException: l'implementazione IDbCommand e IDbConnection nell'assembly System.Data.SQLite potrebbe non essere trovata . Assicurarsi che l'assembly System.Data.SQLite si trovi nella directory dell'applicazione o nella Global Assembly Cache. Se l'assembly si trova nella GAC, utilizzare l'elemento nel file di configurazione dell'applicazione per specificare il nome completo dell'assembly .

versione di NHibernate è 2.1.2.4000
versione di System.Data.SQLite è 1.0.66.0
target quadro è 3.5 (x86)
copia locale per System.Data.SQLite è ON.

Cosa potrebbe essere che non va?

+0

hai visto http://stackoverflow.com/questions/845490/fluentnhibernate-and-sqlite http://stackoverflow.com/questions/1460045/sql-data-sqllite-version-with-nhibernate-2-1 http: // StackOverflow.com/domande/1041271/how-to-configure-sqlite-to-run-con-NHibernate-dove-montaggio-risolve-system-dat –

risposta

2

Se LocalCopy è attivo, è attivo per una versione di System.Data.SQLite nel progetto di avvio perché è dove lo cercherà, non nella directory bin di un sottoprogetto.

6

Impossibile creare il driver dal NHibernate.Driver.SQLite20Driver, NHibernate, Version = 2.1.2.4000, Lingua = il neutro PublicKeyToken = aa95f207798dfdb4

Soluzione:

testsettings: scelgono host scegliere eseguire test in processo a 64 bit su macchina a 64 bit

sperando di poter aiutare.

allegro codifica

9

basta copiare System.Data.SQLite.dll biblioteca alla directory alla base della vostra applicazione (soprattutto dove libreria NHibernate.dll è collocato). Non hai nemmeno bisogno di aggiungere come riferimento sotto VS.

saluti
Bronek

6

Ho appena installato il pacchetto SQLite NuGet e che ha lavorato per me.

Problemi correlati