.NetCore 下使用多个DbContext

Posted 龙码精神~~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.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;[email protected]#; database=Edu_User;SslMode=none;
    "UserConnectionString": "Data Source=192.168.0.42;Initial Catalog=Edu_User;User ID=sa;[email protected]#;Integrated Security=false;",
    //
    "ReadConnectionString": "Data Source=192.168.0.42;Initial Catalog=Edu_User;User ID=sa;[email protected]#;Integrated Security=false;",
    "DbType": 1 //数据库类型
  }

 

2、更新 填写需要更新的DbContext对象即可

dotnet ef database update -c dbcontextname

以上是关于.NetCore 下使用多个DbContext的主要内容,如果未能解决你的问题,请参考以下文章

多用户类型标识 - DbContext 设计

ASP.NET Core DbContext 注入

如何在单独的类库.net core 中使用 DbContext?

将 DbContext 注入 LoggerProvider 会在 .NET Core 中引发 ***Exception

如何使用 Net Core 在 DbContext 中获取用户信息

EF7DbContext池