Je voudrais déposer et de créer une base de données MySQL via Dapper comme ceci:Est-il possible de supprimer + créer un schéma via Dapper?
public class GenericSqlExecutionRepository
{
private IDbConnection _db;
public void RecreateDb()
{
_db.Execute("DROP DATABASE IF EXISTS `my_db`;");
_db.Execute("CREATE DATABASE `my_db`;");
}
}
base de données drop fonctionne très bien, mais whe tente d'exécuter la base de données créer:
« base de données inconnue ' my_db ' »
à MySql.Data.MySqlClient.MySqlStream.ReadPacket() à MySql.Data.MySqlClient.NativeDriver.ReadOk (Boolean read) à 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, commande CommandDefinition &, Action'2 paramReader) à Dapper.SqlMapper.ExecuteImpl (IDbConnection cnn, commande CommandDefinition &) à Dapper.SqlMapper.Execute (IDbConnection cnn, SQL String, Object param, IDbTransaction transaction, Nullable » 1 commandTimeout, Nullable'1 commandType)
Bien sûr, mon IDbConnection
est lié à une seule base de données (spécifiée dans la chaîne de connexion). Donc: est-il possible de contourner ce problème et de faire le drop + create à travers Dapper?
INFOS SUPPLÉMENTAIRES
Le var _db
est généré comme ceci:
public static MySqlConnection GetConnection(string connectionStringId)
{
var connectionString = ConfigurationManager.ConnectionStrings[connectionStringId].ConnectionString;
var connection = new MySqlConnection();
connection.ConnectionString = connectionString;
return connection;
}
C'est la chaîne de connexion dans 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"/>
Cela a été l'erreur suggère également qu'il échouait à une tentative d'utilisation de l'objet de connexion Invalide, puisque la base de données sous-jacente a été abandonnée –