es poco probable que estar leyendo esto más, pero que se está perdiendo lo siguiente en su app.config (o, para usted, web.config):
<configuration>
<system.data>
<DbProviderFactories>
<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>
</configuration>
Específicamente, si estás Al usar sqlite en una biblioteca que está vinculada a su sitio web, debe agregar esto al archivo de configuración del sitio web, ¡no a la biblioteca! Esto se debe a la forma en que está cargando el proveedor: esencialmente, usted está determinando en tiempo de ejecución qué dll cargar, usando la cadena "System.Data.SQLite", y ubicando el proveedor apropiado se hace usando la configuración de la entrada montaje.
Editar: Por cierto, cuando se escribe la biblioteca que tiene una dependencia SQLite, puede evitar esta complejidad. No necesita usar DbProviderFactories
para buscar sqlite en tiempo de ejecución; también puede tomar una dependencia en tiempo de compilación, que puede ser más fácil de administrar. A continuación, puede pasar por alto la sección de app.config anteriormente, y en lugar de reemplazar todas las instancias:
DbProviderFactories.GetFactory("System.Data.SQLite").CreateConnection()
con
System.Data.SQLite.SQLiteFactory.Instance.CreateConnection()
Si lo hace, usted está utilizando una llamada a la librería sencilla para crear la conexión y no hay selección en tiempo de ejecución del proveedor de db. Eso puede ser menos flexible ya que ya no puede intercambiar proveedores de datos a través del archivo de configuración, pero para muchas bibliotecas es suficiente. Desafortunadamente, si no controlas el código de la biblioteca, esta no es una opción.
Hola, gracias por la respuesta. Sí, he visto el blogpost de Phil. Puedo implementar la aplicación ASP.NET MVC normal sin problemas. Es la combinación con Entity Framework + SQLite lo que es problemático. He aumentado tanto System.Data.Entity.dll como System.Data.SQLite.dll en la carpeta bin. Sin suerte todavía. – Pompair
Hmmm. ¿Están en su sección de ensamblajes en la configuración web? – tvanfosson