实体框架核心multiDbContext共享实体的代码优先迁移

时间:2019-09-24 19:12:15

标签: c# .net-core entity-framework-core

我在我的应用程序中使用了多个dbContext(IdentityDbContext和DBContext)。 由于某些原因,我一定会使用多个DBContext,因为我知道您会回答我“仅使用DBContext作为从IdentityDbContext继承DBContext的信息(我不会这样做)”。

无论如何,我在DBContext中有一个名为Patient的表,该表与User具有外键关系。和用户属于IdentityDBContext。

现在,当我从DBContext生成迁移脚本时,它为User添加了DDL。尽管在IdentityDBContext迁移过程中已经创建了用户表。 似乎迁移关系中缺少某些内容。我想创建外键Patient.UserId ==> User.UserId,但是不创建User表ddl脚本。

任何人都可以帮助我如何在另一个DBContext中定义的两个实体之间定义这种关系。

1 个答案:

答案 0 :(得分:0)

此处的解决方法是创建迁移和注释生成的代码(类似于以前的EF版本-IgnoreChanges开关)。应用迁移,最终不会发生任何变化,但是会跟踪当前的DbContext模型快照,并且永远不会再次生成代码。

缺点是,每次更改IdentityDbContext并应用新迁移时,您都需要执行此步骤。