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

C# 具有实体框架6的多个上下文,跨dbcontexts引用实体,c#,entity-framework-6,C#,Entity Framework 6,我正在使用通用UnitOfWork编写两个MVC5(使用EF6和code first)web应用程序,该应用程序由Unity注入dbContext 我们需要有两个数据库(主数据库和项目特定数据库),并在两者之间有一个参考 下面是一个例子: 在主上下文中,我有一个实体Employee 在项目上下文中,我有一个实体部门 我需要在我的项目中创建部门来组织和组织来自主要部门的员工 我可以要 i收集员工{get;set;}在项目数据库的部门实体中?(员工和部门之间的关系是多对多的) 您将如何完成这样的

我正在使用通用UnitOfWork编写两个MVC5(使用EF6和code first)web应用程序,该应用程序由Unity注入dbContext

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

下面是一个例子:

  • 在主上下文中,我有一个实体
    Employee
  • 在项目上下文中,我有一个实体
    部门
我需要在我的项目中创建部门来组织和组织来自主要部门的员工

我可以要

i收集员工{get;set;}
在项目数据库的
部门
实体中?(员工和部门之间的关系是多对多的)


您将如何完成这样的工作?

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

然后,在EF中,您只有一个上下文,其中包含来自数据库和查询/联接等的表


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

我认为DbContexts本身不会处理这个问题,因此抽象背后可能会有一些手工工作。
Department
上的EF-ignored属性可以从其他上下文内部获取
Employee
s的集合,尽管跟踪对它们的更改可能会变得困难。您可能需要选择一个“主”上下文作为您的工作单元,并抽象其后面的另一个上下文,在您提交对主上下文的更改时手动检查对另一个上下文实体的更新。True,EF(此时)不支持创建使用多个上下文的查询。SQL Server非常擅长在数据库或其他服务器之间链接。@WiktorZychla链接两个数据库后,需要创建视图才能在EF中使用一个DbContext吗?如何声明与视图一起工作的DbContext?