【问题标题】:EF CTP5 - Context Inheritance Across Multiple AssembliesEF CTP5 - 跨多个程序集的上下文继承
【发布时间】:2011-10-09 08:05:37
【问题描述】:
我有两个程序集,每个程序集都有模型和模型上下文。
第一个装配模型上下文派生自 DbContext。
第二个装配模型上下文派生自第一个装配模型上下文。
这可行,但数据库生成失败,因为生成数据库时未考虑第一个装配模型。
有没有办法确保在数据库生成期间正确考虑第一个装配模型?
【问题讨论】:
标签:
entity-framework
entity-framework-4.1
entity-framework-ctp5
【解决方案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))
);
}
}
}