在运行时创建数据库 - Entity FrameWork 代码优先

Create Database on Runtime - Entity FrameWork Code-First

我有一个项目将其输出结果保存到 SQLite 数据库中。 在每个 运行 中,用户应该 select 程序将在那里创建数据库并将结果保存在其中的保存位置。所以数据库的名称和位置是动态的。

我如何使用 entity framework core code first 来管理这样的事情?我已经创建了模型和 DbContext class,但我不知道如何在 运行 时间等创建数据库和表。

我找到了解决办法,我应该在OnConfiguring中使用raw.SetProvider(new SQLite3Provider_e_sqlite3());:

public MyDataContext(string path, bool create = true)
{
    FilePath = path;
    if (create)
    {
        Database.EnsureDeleted();
        Database.EnsureCreated();
    }
}

protected override void OnConfiguring(DbContextOptionsBuilder optionbuilder)
{
    optionbuilder.UseSqlite($"Data Source={FilePath}");
    raw.SetProvider(new SQLite3Provider_e_sqlite3());
}