在运行时创建数据库 - 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());
}
我有一个项目将其输出结果保存到 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());
}