使用Entity Framework Code First和Migrations处理多个上下文/域中的外键

Mik*_*ole 5 ef-migrations ef-power-tools entity-framework-6

我正在构建一个利用现有遗留系统数据的新系统.要求我们的应用程序使用相同的物理数据库,但使用不同的模式进行隔离.我们的应用程序只需要从dbo架构读取访问权限,但我们的新结构将具有来自dbo架构的外键,因此我们需要强制执行该操作.

我打算用两种不同的上下文创建两个不同的项目.这将有助于在dbo架构上使用EF Power Tools的逆向工程师代码优先,并在我们的新架构上使用EF迁移.但是,我不确定这种方法如何跨上下文/域处理外键.我如何映射这些,以便迁移正确解释它?

Tim*_*hko 1

  1. 如果您使用不同的架构和/或不同的上下文,这意味着该数据可以存储在任何地方,甚至可以存储在不同的存储(文件、azure、服务)中。您不应跨上下文/域使用显式外来键。您必须对每个上下文进行单独的查询。
  2. 如果您确实需要这样做,您可以将数据库视图与您需要的任何联接一起使用(甚至来自其他服务器)。然后只需映射我们的EF实体即可查看:

    [表(“我的视图”)]

    公共类 MyEntity {...}

显然,它将是只读实体。