3

我现在已经花了一段时间,但只找到了一个我不想做的解决方案......

我有一个如下所示的上下文。是否有一种编程方式来指定要通过构造函数连接的数据库,并让它使用 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();

但是,似乎应该有一种内置的方法来做到这一点,而且不涉及覆盖全局默认连接工厂。

4

0 回答 0