.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的主要内容,如果未能解决你的问题,请参考以下文章
如何在单独的类库.net core 中使用 DbContext?
将 DbContext 注入 LoggerProvider 会在 .NET Core 中引发 ***Exception