2016-10-04 54 views
0

我想通過小巧玲瓏這樣的下降和在MySQL中創建一個數據庫:是否可以通過Dapper拖放+創建架構?

public class GenericSqlExecutionRepository 
{ 
    private IDbConnection _db; 

    public void RecreateDb() 
    { 
     _db.Execute("DROP DATABASE IF EXISTS `my_db`;"); 
     _db.Execute("CREATE DATABASE `my_db`;"); 
    } 
} 

DROP DATABASE工作得很好,但磨片試圖執行創建數據庫:

「未知數據庫「 MY_DB」'

在MySql.Data.MySqlClient.MySqlStream.ReadPacket() 在MySql.Data.MySqlClient.NativeDriver.ReadOk(布爾讀) 在MySql.Data.MySqlClient.NativeDriver.SetDatabase(字符串DBNAME) 在MySql.Data.MySqlClient.Driver.SetDatabase(字符串DBNAME) 在MySql.Data.MySqlClient.MySqlConnection.ChangeDatabase(字符串的databaseName) 在MySql.Data.MySqlClient.MySqlConnection.Open() 在Dapper.SqlMapper.ExecuteCommand (的IDbConnection CNN,CommandDefinition &命令,Action'2 paramReader) 在Dapper.SqlMapper.ExecuteImpl(的IDbConnection CNN,CommandDefinition &命令) 在Dapper.SqlMapper.Execute(CNN的IDbConnection,字符串SQL,對象PARAM,IDbTransaction交易,可空」 1 commandTimeout,Nullable'1 commandType)

當然我的IDbConnection綁定到單個數據庫(在連接字符串中指定)。所以:是否有可能繞過這個問題,並通過Dapper進行下拉+創建?


附加INFOS

的VAR _db是像這樣產生的:

public static MySqlConnection GetConnection(string connectionStringId) 
{ 
    var connectionString = ConfigurationManager.ConnectionStrings[connectionStringId].ConnectionString; 
    var connection = new MySqlConnection(); 
    connection.ConnectionString = connectionString; 

    return connection; 
} 

這是App.config連接字符串:

<add name="myDbId" connectionString="Server=localhost;Port=3306;Database=my_db;User=yyyyyyy;Password=zzzzzzz;Convert Zero Datetime=True;Compress=True;" providerName="System.Data.SqlClient"/> 

回答

0

它看起來像通過簡單地刪除Database=my_db;從連接字符串,小巧玲瓏是與OK:

<add name="myDbId" connectionString="Server=localhost;Port=3306;User=yyyyyyy;Password=zzzzzzz;Convert Zero Datetime=True;Compress=True;" providerName="System.Data.SqlClient"/> 

現在,這兩個查詢工作。

+0

這是錯誤也表明它試圖使用Invalid連接對象失敗,因爲底層數據庫已被刪除 –

相關問題