我现在已经花了一段时间,但只找到了一个我不想做的解决方案......
我有一个如下所示的上下文。是否有一种编程方式来指定要通过构造函数连接的数据库,并让它使用 System.Data.SQLite 实体框架提供程序连接到 SQLite 数据库?这是通过 app.config 工作的(带有一个名为“Context”的连接字符串),但不是通过我能找到的任何编程方式来提供它。我尝试使用实体连接字符串生成器并生成以下字符串:
provider=System.Data.SQLite;provider 连接字符串='data source="datafile.db"'
首次使用此字符串查询上下文时,我收到一条消息“不支持关键字:'provider'。”
public class Context : DbContext
{
public IDbSet<Test> Tests { get; set; }
public Context()
: base("Context")
{
}
}
*编辑。
我可能已经通过实现我自己的连接工厂解决了这个问题:
public class ConnectionFactory : IDbConnectionFactory
{
public DbConnection CreateConnection(string nameOrConnectionString)
{
return new SQLiteConnection(nameOrConnectionString);
}
}
然后设置:
Database.DefaultConnectionFactory = new ConnectionFactory();
但是,似乎应该有一种内置的方法来做到这一点,而且不涉及覆盖全局默认连接工厂。