EF CTP5 - 跨多个程序集的上下文继承

时间:2011-06-10 01:11:14

标签: entity-framework entity-framework-4.1 entity-framework-ctp5

我有两个程序集,每个程序集都有模型和模型上下文。

第一个装配模型上下文派生自DbContext。

第二个装配模型上下文派生自第一个装配模型上下文。

这是有效的,但数据库生成失败,因为生成数据库时不考虑第一个装配模型。

有没有办法确保在数据库生成期间正确考虑第一个装配模型?

1 个答案:

答案 0 :(得分:1)

我通过将其他程序集的元数据加载到上下文构造函数中的底层ObjectContext的MetadataWorkspace来解决这个问题:

namespace MyNamespace{
    public class MyContext : DbContext {

        public ObjectContext ObjectContext { 
            get { return ((IObjectContextAdapter)this).ObjectContext; } 
        }

        public MyContext() : base() {
            this.ObjectContext.MetadataWorkspace.LoadFromAssembly(
               System.Reflection.Assembly.GetAssembly(typeof(MyNamespace.MyContext))
            );
        }

    }
}