问题
I have two assemblies, each with models and a model context.
The first assembly model context is derived from DbContext.
The second assembly model context is derived from the first assembly model context.
This works, except the database generation fails because the first assembly models aren't considered when generating the database.
Is there a way to ensure that the first assembly models are properly considered during database generation?
回答1:
I solved this by loading the other assembly's metadata into the underlying ObjectContext's MetadataWorkspace within the context's constructor:
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))
);
}
}
}
来源:https://stackoverflow.com/questions/6300990/ef-ctp5-context-inheritance-across-multiple-assemblies