2017-02-27 42 views
4

的最多方法中的數據庫名稱如何獲取一個遷移從延伸到Migration獲取遷移

public class BaseMigration : Migration 
{ 
    public override void Up() 
    { 
     var databaseName = HOW_DO_I_GET_THIS? 
    } 
} 

回答

0

您可以在類的Up(或Down)方法中操作過的數據庫的名稱如果在那裏指定了連接字符串,則從該連接字符串派生數據庫名稱。例如,如果你使用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