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

时间:2014-02-10 19:12:48

标签: entity-framework-6 ef-migrations ef-power-tools

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

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

1 个答案:

答案 0 :(得分:1)

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

    [表( “MyView的”)]

    公共课MyEntity {...}

  3. 显然,它是只读实体。