EF CTP5 - Context Inheritance Across Multiple Assemblies

巧了我就是萌 提交于 2019-12-08 04:39:20

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!