Entity Framework 5.0继承多个程序集

Ben*_*Sch 5 inheritance entity-framework table-per-hierarchy entity-framework-5

我正在使用Entity Framework 5.0,其中包含代码优先方法以及由Table Per Hierarchy表示的业务对象的继承.

我想要有以下结构:

//Assembly 'DataAccess'    
public class MyDbContext : DbContext
{
    DbSet<AbstractClass> CommonObjects.AbstractClasses { get; set; }
}

//Assembly 'CommonObjects'  
public abstract class AbstractClass
{
    //implementation
}

//Assembly 'DerivedObjects'   
public class DerivedClass : AbstractClass
{
    //implementation
}
Run Code Online (Sandbox Code Playgroud)

在运行时,第一次尝试访问DbContext时,编译器会抛出InvalidOperationException:

抽象类型"CommonObjects.AbstractClass"没有映射的后代,因此无法映射.从模型中删除"CommonObjects.AbstractClass",或者将从"CommonObjects.AbstractClass"派生的一个或多个类型添加到模型中.

这种情况甚至可能吗?如果是的话,我做错了什么?

感谢您提前的答案.

附加信息:

也许我应该更具体一点:

我有一个包含我的抽象业务对象的程序集(只有抽象).具体实现(包含逻辑)保存在负责的程序集中,因为它们的逻辑依赖于该程序集中的其他类.问题是,我希望能够在persistance层中存储这些conrete实现.但为此目的,EF必须知道这些类型才能实现映射.但我不想让持久层依赖于我的业务逻辑层 - 只有抽象.

这就是我尝试直接从业务对象层将派生对象添加到DbContext的原因.

例:

AbstractClass derivedClass = new DerivedClass();
MyDbContext.AbstractClasses.Add(derivedClass); 
Run Code Online (Sandbox Code Playgroud)

但随后抛出上述例外情况.我只是想不出一个好的结构来实现这一目标.