我有两个程序集,每个程序集都有模型和模型上下文。
第一个装配模型上下文派生自DbContext。
第二个装配模型上下文派生自第一个装配模型上下文。
这是有效的,但数据库生成失败,因为生成数据库时不考虑第一个装配模型。
有没有办法确保在数据库生成期间正确考虑第一个装配模型?
答案 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))
);
}
}
}