Question

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?

Was it helpful?

Solution

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))
            );
        }

    }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top