使用实体框架在运行时连接到Sqlite数据库

时间:2013-10-25 14:15:19

标签: c# entity-framework sqlite

我想将项目连接到Sqlite数据库。所以,在我的数据库上下文中,我有这个cunstructor和一个Initialize方法

    private  DatabaseContext(string cnxString) : base(cnxString)
    {
        Database.SetInitializer<DatabaseContext>(new DatabaseInitialiser());
    }
    public static void initialize(string connx)
    {
        _instance = new DatabaseContext(connx);
    }

并在program.cs中我调用Inialize方法来设置连接字符串

  

DatabaseContext.initialize(“data source = D:\ storage.sqlite;”);

因此,每个用户都可以通过传递他的连接字符串来连接到他的数据库。

但是,在运行我的应用程序时,我遇到了这个错误:

An error occurred while getting provider information from the database. This can be caused by Entity Framework using an incorrect connection string. Check the inner exceptions for details and ensure that the connection string is correct.

1 个答案:

答案 0 :(得分:2)

您需要将SQLite连接对象传递给基础构造函数:

private DatabaseContext(string cnxString)
    : base(new SQLiteConnection(cnxString), contextOwnsConnection: true)
{
}