asp.net-core - 如何将 IdentityDbContext 与两个数据库相关联?
问题描述
我有ASP.Net Core
命令行应用程序,我尝试从一个数据库中复制另一个数据库中的数据。所以理想情况下,我想要这样的东西
services.AddDbContext<IdentityDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("FromConnection")));
services.AddDbContext<IdentityDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("ToConnection")));
显然,这是行不通的,因为泛型中的类型是相同的。如果我能做这样的事情:
var fromContext = new IdentityDbContext<IdentityUser>();
var toContext = new IdentityDbContext<IdentityUser>();
services.AddDbContext(fromContext, options => options.UseSqlServer(Configuration.GetConnectionString("FromConnection")));
services.AddDbContext(toContext, options => options.UseSqlServer(Configuration.GetConnectionString("ToConnection")));
这是一个小型实用程序;所以我可以(在某种程度上)在依赖注入上妥协——有没有办法做到这一点?
在这种情况下,我试图从身份表中复制角色和声明;所以同样的问题是IdentityRole
和IdentityRoleClaim
类 - 但第一步是DbContext
单独设置。
更新:如果我要使用这样的派生类DbContext
:
public class IdentityFromDbContext : IdentityDbContext<IdentityUser> { ... }
public class IdentityToDbContext : IdentityDbContext<IdentityUser> { ... }
然后我需要具备以下条件:
services.AddIdentity<IdentityUser, IdentityRole>()
.AddEntityFrameworkStores<IdentityDbContext>()
如果我要派生IdentityFromUser
等。我会遇到一个问题,我需要修改应用程序模型本身
解决方案
您是否考虑过继承自您的分离的上下文MyDbContext
?
即OldDbContext : MyDbContext
和NewDbContext : MyDbContext
。
推荐阅读
- r - R 将 if_else 和 sum 应用于数据框中的每个元素
- cucumber - 如何使用动态变量制作 Citrus FTP 主机、端口、用户名、密码
- javascript - 如何在此图表中添加“画笔 + 焦点”?
- amazon-web-services - API 网关输入验证 - 不允许额外的属性
- git - Git 暂时删除一些代码以获得更清晰的拉取请求
- python-3.x - discord.py 任务不起作用“命令”对象没有属性“开始”
- flutter - BLoC 在每个事件之后返回相同的数据
- typescript - 我可以将 jtd 粘贴为打字稿类型语法吗?
- amazon-web-services - 如何解决 AWS Cloudfront EC2 实例上的 504 错误
- python - OpenCV Homography 给出错误:输入数组应该至少有