2 support muti db
ansonzhang edited this page 2019-12-23 19:03:31 +08:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

多个数据库连接

注意这个不是读写分离,是项目中,可以同时连接多个数据库。

1、开启多库操作阀门为true

// 在appsettings.json中配置

"MutiDBEnabled": true

2、配置多个连接字符串

// 在appsettings.json中配置
// 如果要启用那个就必须开启对应链接的阀门Enabled为true
// 同时必须要配置不同的连接ID —— ConnId
// 注意♥,多个数据库必须都存在,如果不存在肯定连不上。

  "DBS": [
    /*
      MySql = 0,
      SqlServer = 1,
      Sqlite = 2,
      Oracle = 3,
      PostgreSQL = 4
    */
    {
      "ConnId": "WMBLOG_SQLITE",
      "DBType": 2,
      "Enabled": true,
      "Connection": "WMBlog.db" //只写数据库名就行,我会拼接字符串
    },
    {
      "ConnId": "WMBLOG_MSSQL",
      "DBType": 1,
      "Enabled": true,
      "Connection": "Server=.;Database=WMBlogDB;User ID=sa;Password=123;",
      "ProviderName": "System.Data.SqlClient"
    },
    {
      "ConnId": "WMBLOG_MYSQL",
      "DBType": 0,
      "Enabled": true,
      "Connection": "Server=localhost; Port=3306;Stmt=; Database=wmblogdb; Uid=root; Pwd=456;"
    },
    {
      "ConnId": "WMBLOG_ORACLE",
      "DBType": 3,
      "Enabled": false,
      "Connection": "Provider=OraOLEDB.Oracle; Data Source=WMBlogDB; User Id=sss; Password=789;",
      "OracleConnection_other1": "User ID=sss;Password=789;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.8.65)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME = orcl)))"
    }
  ],

3、配置主数据库ID

//在appsettings.json中配置主数据库连接ID

"MainDB": "WMBLOG_SQLITE",//当前项目的主库连接字符串的Enabled必须为true

4、配置实体Model特性对应的数据库连接Id

// 第一个参数是表名第二个参数是对应的appsettings.json中的连接id // 如果这个特性不写,默认的就是主数据库

    [SugarTable("PasswordLib", "WMBLOG_MSSQL")]
    public class PasswordLib
    {
        [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = true)]
        public int PLID { get; set; }
        
        // more...

    }