实体框架代码优先和多个程序集

| 我有一个与基类不同的程序集中的子类。父级是用于EF Code First的POCO类。 当我尝试将继承的类的实例添加到数据库时,我收到InvalidOperationException:\“找不到标识为\'Foo.Bar.MyInheritedClass \'\的Type的对象映射。 如果子类与基类在同一程序集中,则效果很好。 在常规EF中,解决方案似乎是对ObjectContext.MetadataWorkspace.LoadFromAssembly(assembly)的调用。但是我不知道这与Code First有何关系。 有什么建议吗? 我正在使用Entity Framework 4.1 RC。     
已邀请:
        我通过从第一个程序集的DbContext继承,为派生类添加DbSet <>,然后向其添加派生类型的新实例来解决此问题。 在此处将代码发布在MSDN论坛上。     
        我知道这篇文章有点老了,但是我可以在构造函数中使用@Dave \的推荐来实现:
public Context() {
    ((IObjectContextAdapter)this).ObjectContext.MetadataWorkspace.LoadFromAssembly(
        System.Reflection.Assembly.GetAssembly(
             typeof(--[Inherited DbContext]--)));
}
    
        我是EF(实体框架4)的新手,在更改模型时遇到了同样的异常。 我的问题原来是,我不知道EF是否需要所有导航属性上的所有名称都同意,而不仅是它们的类型。例如,如果有一个名为foo的导航属性,则在相应的类中需要有一个具有相同名称的声明变量。     

要回复问题请先登录注册