c# nhibernate sqlite

c# - No se pudo crear el controlador desde NHibernate.Driver.SQLite20Driver



(5)

Acabo de instalar el paquete SQLite NuGet y funcionó para mí.

Aquí está el código que plantea la excepción.

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; }

El texto completo de la excepción:

Error: NHibernate.HibernateException: no se pudo crear el controlador desde NHibernate.Driver.SQLite20Driver, NHibernate, Versión = 2.1.2.4000, Culture = neutral, PublicKeyToken = aa95f207798dfdb4.

----> System.Reflection.TargetInvocationException: el destino de una invocación ha generado una excepción.

----> NHibernate.HibernateException: No se pudo encontrar la implementación IDbCommand e IDbConnection en el ensamblaje System.Data.SQLite. Asegúrese de que el ensamblaje System.Data.SQLite esté ubicado en el directorio de la aplicación o en la Caché de ensamblados global. Si el ensamblaje está en la GAC, use el elemento en el archivo de configuración de la aplicación para especificar el nombre completo del ensamblaje.

La versión de NHibernate es 2.1.2.4000
La versión de System.Data.SQLite es 1.0.66.0
Marco de destino es 3.5 (x86)
Copia local para System.Data.SQLite está activado.

¿Qué puede estar mal?



No se pudo crear el controlador desde NHibernate.Driver.SQLite20Driver, NHibernate, Versión = 2.1.2.4000, Culture = neutral, PublicKeyToken = aa95f207798dfdb4

Solución:

configuraciones de prueba: elija hosts elija pruebas de ejecución en un proceso de 64 bits en una máquina de 64 bits

esperando poder ayudar

feliz codificación


Si LocalCopy está activado, está activado para una versión de System.Data.SQLite en el proyecto de inicio porque ahí es donde lo estará buscando, no en el directorio bin de un subproyecto.


Simplemente copie la biblioteca System.Data.SQLite.dll en el directorio base de su aplicación (especialmente donde se encuentra la biblioteca NHibernate.dll). Incluso no lo necesita para agregar como referencia en VS.

Saludos
Bronek