EF6 如何避免为由另一个 DbContext 管理的实体创建表



>我有以下类结构:

  1. SecurityLayer.Domain dll

    • 用户类和其他一些类
    • 为此有一个 nuget 包
  2. SecurityLayer.Data dll

    • SecurityDbContext 类(继承自 DbContext 并管理与用户相关的实体)
    • 为此有一个 nuget 包

现在我构建了另一个使用上述两个包的产品。我有以下结构

  1. MyProduct.Data dll 有一个 ProductDbContext 来管理来自 MyProduct.Domain dll 的实体

问题是,当我在 MyProduct.Data 项目上使用 Add-Migration 时,EF 会生成一个迁移,以从 MyProduct.Domain 和 SecurityLayer.Domain 创建所有实体

我知道 EF6 在单个数据库中支持多个 DbContext,但它对我不起作用。我们是否可以做一些事情来让 EF 避开 SecurityLayer.Domain 中的实体?任何建议都非常感谢。啧!

最简单的方法是创建初始迁移并从中删除不相关的位。由于 EF 的工作方式,后续迁移将不会选取现有表。

迁移实际上将数据库的状态存储在名为 __MigrationHistory 的表中。其中一列包含压缩的 EDMX 文件。可以将内容提取为 blob,将其另存为.zip文件,然后亲自查看。每次迁移都使用它来确定自上次迁移以来发生了哪些更改。

最新更新