Entity framework EF6使用多个DbContext-(实体类型EntityName不是当前上下文的模型的一部分)

Entity framework EF6使用多个DbContext-(实体类型EntityName不是当前上下文的模型的一部分),entity-framework,ef-code-first,Entity Framework,Ef Code First,我有一个应用程序,我们有一些模块。例如,我们有财务模块和员工模块 我有一个核心项目,我创建了一个从DbContext继承的名为DefaultDbContext的抽象类,我有一个名为ModelCreating的抽象方法,所有ConcreteClass(EFFinacialContext和EFEmployeeContext)都应该实现它来添加映射类 我的问题是,我有一个带有这些模块的应用程序,收到这样一条消息“实体类型EntityName不是当前上下文模型的一部分。” 我让每个模块在另一个应用程序中

我有一个应用程序,我们有一些模块。例如,我们有财务模块和员工模块

我有一个核心项目,我创建了一个从DbContext继承的名为DefaultDbContext的抽象类,我有一个名为ModelCreating的抽象方法,所有ConcreteClass(EFFinacialContext和EFEmployeeContext)都应该实现它来添加映射类

我的问题是,我有一个带有这些模块的应用程序,收到这样一条消息“实体类型EntityName不是当前上下文模型的一部分。”

我让每个模块在另一个应用程序中运行,一切正常,所以,在一起运行时出现了一些问题

谁在使用具有多个db上下文的应用程序时遇到同样的问题

谢谢这是你的问题

public class Context1 : DbContext
{
    public IDbSet<Entity1> E1{get;set;}
}

public class Context2 : DbContext
{
    public IDbSet<Entity2> E2{get;set;}
}

public class Entity1
{
    //some stuff
}

public class Entity2
{
    //some stuff
    public Entity1 E1 {get;set;} //you arent allowed this as its not in your current dbcontext
}
公共类Context1:DbContext
{
公共IDbSet E1{get;set;}
}
公共类Context2:DbContext
{
公共IDbSet E2{get;set;}
}
公共类实体1
{
//一些东西
}
公共类实体2
{
//一些东西
public Entity1 E1{get;set;}//不允许这样做,因为它不在当前的dbcontext中
}

他不能从当前上下文中的实体引用附加到其他上下文的实体。我认为您应该更仔细地再看一遍您的示例。