使用动态数据库连接在 Entity Framework Core 中添加迁移

Add migrations in Entity Framework Core with dynamic database connection

我正在使用 Entity Frameowrk Core 处理 .NET Core 3.0 WPF 应用程序中的不同数据库。我为不同的用户使用不同的 SQLite 数据库文件,因此每个登录用户的连接字符串都会发生变化。

我必须能够使用迁移,但是当我 运行 dotnet ef migrations add V2 例如,它失败了,因为它找不到数据库。

在这种情况下如何生成迁移?

这是我的上下文代码:

protected override void OnConfiguring(DbContextOptionsBuilder options)
{
      var connectionString = string.Format("Data Source={0}", GetDbPath(this.username));

      this.connection = new SqliteConnection(connectionString);
      this.connection.Open();

      options.UseSqlite(this.connection)
}

最后我找到了一个解决方法,即在生成迁移时临时使用固定的本地数据库路径,因此不会出现缺少变量的运行时错误:

// var dbPath = GetDbPath(this.username);
var dbPath = "C:\DB.db";
var connectionString = string.Format("Data Source={0}", dbPath);
...