Я хотел бы удалить и создать базу данных в MySQL через Dapper так:Можно ли сбросить + создать схему с помощью Dapper?
public class GenericSqlExecutionRepository
{
private IDbConnection _db;
public void RecreateDb()
{
_db.Execute("DROP DATABASE IF EXISTS `my_db`;");
_db.Execute("CREATE DATABASE `my_db`;");
}
}
базы Капли работает просто отлично, но Whe пытается выполнить создание базы данных:
«Неизвестная база данных" my_db»
в MySql.Data.MySqlClient.MySqlStream.ReadPacket() в MySql.Data.MySqlClient.NativeDriver.ReadOk (Boolean чтение) в MySql.Data.MySqlClient.NativeDriver.SetDatabase (String DbName) на MySql.Data.MySqlClient.Driver.SetDatabase (String DBNAME) в MySql.Data.MySqlClient.MySqlConnection.ChangeDatabase (String DATABASENAME) в MySql.Data.MySqlClient.MySqlConnection.Open() в Dapper.SqlMapper.ExecuteCommand (IDbConnection CNN, CommandDefinition & команда, Action'2 paramReader) на Dapper.SqlMapper.ExecuteImpl (IDbConnection CNN, CommandDefinition & команды) на Dapper.SqlMapper.Execute (IDbConnection CNN, струнный SQL, пары Object, IDbTransaction сделки, Nullable» 1 commandTimeout, Nullable'1 commandType)
Конечно, мой IDbConnection
привязан к одной базе данных (указанной в строке подключения). Итак: можно ли обойти эту проблему и сделать drop + create через Dapper?
ДОПОЛНИТЕЛЬНО
Значение переменной _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 connection object, поскольку базовая база данных была удалена –