是否可以通过Dapper删除+创建模式?
本文关键字:创建 模式 删除 可以通过 Dapper 是否 | 更新日期: 2023-09-27 18:11:20
我想通过Dapper在MySQL中创建一个数据库:
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工作得很好,但是当试图执行create 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数据库名(字符串)在MySql.Data.MySqlClient.MySqlConnection.Open ()在Dapper.SqlMapper。执行命令(IDbConnection cnn, CommandDefinition&命令,动作'2 paramReader)在Dapper.SqlMapper。ExecuteImpl(IDbConnection cnn, CommandDefinition&命令)在Dapper.SqlMapper。Execute(IDbConnection cnn, String sql, Object参数,IDbTransaction transaction, Nullable'1 commandTimeout, Nullable'1 commandType)
当然,我的IDbConnection
绑定到单个数据库(在连接字符串中指定)。所以:是否有可能绕过这个问题,通过Dapper进行drop+创建?
附加信息
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"/>
看起来只需从连接字符串中删除Database=my_db;
, Dapper就可以了:
<add name="myDbId" connectionString="Server=localhost;Port=3306;User=yyyyyyy;Password=zzzzzzz;Convert Zero Datetime=True;Compress=True;" providerName="System.Data.SqlClient"/>
现在两个查询都工作了