.NetCore 下使用多個DbContext


 

一個項目中使用多個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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM