1. 程式人生 > >.NetCore 下使用多個DbContext

.NetCore 下使用多個DbContext

tin set int 業務 nbsp etc .get pset CA

一個項目中使用多個DbContext 或者種數據庫的多個DbContext 業務需要

單個DbContext使用不需要給出說明

1、dotnet ef migrations add migrationname

2、dotnet ef database update

多個DbContext請使用如下命令指定dbcontext名稱或者指定生成到目錄

1、 添加為dbcontextname 添加 migrations 到 pathdir目錄下面,這裏需要註意的是應用程序集目錄問題 _migrationAssablyName,會決定生成migraions文件夾位置

dotnet ef migrations add migrationname -c dbcontextname -o pathdir

services.AddDbContext<UserDbContext>(
                  optionsBuilder =>
                  {
                      var _userappsetting = Configuration.GetSection("UserAppSetting").Get<UserAppSetting>();
                      if (_userappsetting == null)
                      {
                          
throw new Exception("數據庫連接字符串未配置"); } switch (_userappsetting.DbType) { case 1: optionsBuilder.UseSqlServer(_userappsetting.UserConnectionString, sqlserver => { sqlserver.MigrationsAssembly(_migrationAssablyName); sqlserver.UseRowNumberForPaging(); });
break; default: optionsBuilder.UseMySQL(_userappsetting.UserConnectionString, mysql => { mysql.MigrationsAssembly(_migrationAssablyName); }); break; } });
 "UserAppSetting": {
    //server=192.168.0.42;port=3306;user=root;password=lym123!@#; database=Edu_User;SslMode=none;
    "UserConnectionString": "Data Source=192.168.0.42;Initial Catalog=Edu_User;User ID=sa;password=lym123!@#;Integrated Security=false;",
    //
    "ReadConnectionString": "Data Source=192.168.0.42;Initial Catalog=Edu_User;User ID=sa;password=lym123!@#;Integrated Security=false;",
    "DbType": 1 //數據庫類型
  }

2、更新 填寫需要更新的DbContext對象即可

dotnet ef database update -c dbcontextname

.NetCore 下使用多個DbContext