如何从扩展迁移的类的Up(或Down)方法中获取迁移正在操作的数据库的名称
public class BaseMigration : Migration
{
public override void Up()
{
var databaseName = HOW_DO_I_GET_THIS?
}
}
最佳答案 如果在那里指定了数据库名称,则可以从连接字符串派生数据库名称.例如,如果您使用的是SQL服务器,这将有效:
public class BaseMigration : Migration
{
public override void Up()
{
System.Data.SqlClient.SqlConnectionStringBuilder builder =
new System.Data.SqlClient.SqlConnectionStringBuilder(ConnectionString);
var databaseName = builder.InitialCatalog;
}
}
否则,请使用其他可用的System.Data.Common.DbConnectionStringBuilder
实施:
System.Data.EntityClient.EntityConnectionStringBuilder
System.Data.Odbc.OdbcConnectionStringBuilder
System.Data.OleDb.OleDbConnectionStringBuilder
System.Data.OracleClient.OracleConnectionStringBuilder
有关更多信息,请参见this stackoverflow post.