如何从扩展Up
Down
(或Migration
)方法中获取迁移操作的数据库的名称
public class BaseMigration : Migration
{
public override void Up()
{
var databaseName = HOW_DO_I_GET_THIS?
}
}
答案 0 :(得分:1)
如果在那里指定了数据库名称,则可以从连接字符串派生数据库名称。例如,如果您使用的是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。