问题描述
||
我有两个程序集,每个程序集都有模型和模型上下文。
第一个程序集模型上下文是从DbContext派生的。
第二装配模型上下文是从第一装配模型上下文派生的。
这行得通,除了数据库生成失败,因为在生成数据库时不考虑第一个程序集模型。
有没有办法确保在数据库生成期间正确考虑第一个程序集模型?
解决方法
我通过将另一个程序集的元数据加载到上下文的构造函数中的基础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))
);
}
}
}