实体框架代码优先 - 多个数据库之间的关系

时间:2014-07-10 18:43:10

标签: asp.net-mvc entity-framework code-first relationship multiple-databases

我想知道是否可以使用Code First映射两个不同数据库之间的关系。例如,我想部署具有相同数据库结构的不同网站(相同的系统)。但我希望一个主数据库拥有所有系统将共享访问权限的表。

实施例: 主数据库中的表客户端; 表格ClientContacs在个别特定系统的数据库中;

是否可以使用Code First和多个DbContext进行映射?如果不是,我真的很感激如何实现这一目标的建议! 谢谢!

2 个答案:

答案 0 :(得分:0)

我认为单个数据库可以有多个上下文,但单个上下文不能有多个数据库。

答案 1 :(得分:0)

是的,这是可能的,但不是很方便。

以下是使用EDMX文件执行此操作的说明:

http://rachel53461.wordpress.com/2011/05/22/tricking-ef-to-span-multiple-databases/

首先使用代码会更容易一些,因为您只需要引用表名。但是,您无法自动创建EF。您必须先创建同义词,然后将同义词视为普通表。

显然,这仅适用于支持同义词的数据库...... SQL Server 2008+应该没问题。

但是,这实际上是将它视为一个单独的数据库,其中包含"链接"作为表格到另一个数据库......你不能明确地把它当作两个独立的数据库。