我想通過小巧玲瓏這樣的下降和在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"/>
這是錯誤也表明它試圖使用Invalid連接對象失敗,因爲底層數據庫已被刪除 –