【发布时间】:2020-12-29 11:48:01
【问题描述】:
当我为 SQLite 设置提供程序时:
public class Configuration : DbConfiguration, IDbConnectionFactory
{
public SqlTypeEnum sqlTypeEnum = SqlTypeEnum.Sql;
public Configuration()
{
SetDefaultConnectionFactory(this);
}
public Configuration(SqlTypeEnum sqlTypeEnum)
{
this.sqlTypeEnum = sqlTypeEnum;
SetProviderFactory("System.Data.SQLite", SQLiteFactory.Instance);
SetProviderFactory("System.Data.SQLite.EF6", SQLiteProviderFactory.Instance);
var providerServices = (DbProviderServices)SQLiteProviderFactory.Instance.GetService(typeof(DbProviderServices));
SetProviderServices("System.Data.SQLite", providerServices);
SetProviderServices("System.Data.SQLite.EF6", providerServices);
SetDefaultConnectionFactory(this);
}
public DbConnection CreateConnection(string connectionString)
{
if(sqlTypeEnum == SqlTypeEnum.Sql)
return new SqlConnection(connectionString);
else
return new SQLiteConnection(connectionString);
}
}
此信息显示在控制台上:
无法解析 System.Data.SQLite 请求的 Mono.Runtime 类型,Version=1.0.113.0,Culture=neutral,PublicKeyToken=db937bc2d44ff139
无法解析 System.Data.SQLite 请求的类型 System.CoreLib,版本=1.0.113.0,Culture=neutral,PublicKeyToken=db937bc2d44ff139
SetProviderFactory("System.Data.SQLite", SQLiteFactory.Instance);之后
不过,一切似乎都运行良好,但我想修复它。
- .NET v4.5.2
- 实体框架 v6.4.4
编辑:
最后在我的应用程序中,我加载了其他项目的库,但我直接使用提供者对项目进行了测试,它崩溃了一个错误,表明这个问题:Unable to load DLL 'SQLite.Interop.dll'
但是,这些解决方案都无法解决问题。在我看来,原因可能是加载了库(Assembly)并且我没有附加任何项目。
【问题讨论】:
-
Cannot resolve type Mono.Runtime requested by System.Data.SQLite, Version=1.0.113.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139你确定你使用的是正确的版本?
标签: c# entity-framework