【问题标题】:Entity framework core multipleDbContext code-first migration of shared entity实体框架核心multipleDbContext代码优先迁移共享实体
【发布时间】:2020-01-11 04:19:41
【问题描述】:

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

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

现在,当我从 DBContext 生成迁移脚本时,它会为用户添加 DDL;虽然在 IdentityDBContext 迁移期间已经创建了 User 表。 看来,迁移关系中缺少一些东西。我想创建外键 Patient.UserId ==> User.UserId,但不要创建 User 表 ddl 脚本。

谁能帮助我如何定义在另一个 DBContext 中定义的两个实体之间的这种关系。

【问题讨论】:

  • 您使用的是哪个商店?如果是 SQL Server 或类似的,您可以在两者之间创建一个数据库链接并设置一个视图,以便您可以将对象实际映射到您的上下文。
  • 感谢@Fenixil。我检查了建议的解决方案,但它对我不起作用。即忽略也将忽略外键,在我的情况下,第二个禁用迁移的建议不是答案
  • 感谢@jcruz。我正在使用 SQL Server。您能否解释一下数据库上下文之间的数据库链接将如何帮助我。我从未在 EF 中应用 DB 链接。让我看看它是否能解决我的问题

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 2013-04-16
    • 2019-07-22
    • 1970-01-01
    相关资源
    最近更新 更多