MySql-创建DbContext

创建 DbContext

对于 MySql 数据库,需要安装 Install-Package Chloe.MySql 以及 MySql 的驱动,然后使用 Chloe.MySql.MySqlContext 创建上下文实例。注意:DbContext 实例非线程安全,不能设置为单例。同时,用完务必要将 DbContext 释放。
因为框架本身需要与具体的数据库驱动解耦,所以 MySqlContext 构造函数需要一个 IDbConnectionFactory 的参数,IDbConnectionFactory 接口只有一个 CreateConnection() 方法,必须先建个类,实现 CreateConnection 方法。

public class MySqlConnectionFactory : IDbConnectionFactory
{
    string _connString = null;
    public MySqlConnectionFactory(string connString)
    {
        this._connString = connString;
    }
    public IDbConnection CreateConnection()
    {
        IDbConnection conn = new MySqlConnection(this._connString);
        /*如果有必要需要包装一下驱动的 MySqlConnection*/
        //conn = new Chloe.MySql.ChloeMySqlConnection(conn); 
        return conn;

    }
}

接下来就可以创建 MySqlContext:

string connString = "Your connection string";
MySqlContext context = new MySqlContext(new MySqlConnectionFactory(connString));

ASP.NET CORE 配置 Service:

public void ConfigureServices(IServiceCollection services)
{
    //...

    services.AddScoped<Chloe.IDbContext>((serviceProvider) =>
    {
        return new Chloe.MySql.MySqlContext(new MySqlConnectionFactory("Your connection string"));
    });

    //...
}