实体框架6的多个上下文,跨dbcontexts的引用实体

时间:2014-03-20 13:32:50

标签: c# entity-framework-6

我正在使用通用的UnitOfWork编写两个MVC5(使用EF6和代码优先)Web应用程序,它获取Unity注入的dbContext。

我们需要有两个数据库(主数据库和项目特定数据库)并在两者之间有参考。

以下是一个例子:

  • 在主要上下文中我有一个实体Employee
  • 在项目上下文中我有一个实体Department

我需要在我的项目中创建部门,并从Main组织和组织员工。

我可以......

Project DB的ICollection<Employee> Employees { get; set; }实体中的

Department? (员工和部门之间的关系是多对多的)

你会怎么做这样的事情?

1 个答案:

答案 0 :(得分:2)

最简单的方法是将表从一个数据库链接到另一个数据库,这样就是将两个物理数据库作为一个虚拟数据库处理的数据库服务器。

然后,在EF中,您只有一个上下文,其中包含来自两个数据库的表以及查询/连接等正常工作。

http://msdn.microsoft.com/en-us/library/ff772782.aspx

否则,将应用程序层中的两个数据库与EF和两个上下文链接起来听起来是不可能的。