在EF6.1.3中,我试图用新的Provider Service替换当前的DbProviderService。在DbConfiguration
中,这可以通过向Loaded事件添加代码来实现:
Loaded += (sender, args) =>
args.ReplaceService<DbProviderServices>(
(s, _) => new SomeProviderServices(s, myhandler));
如果我尝试在DbMigrationsConfiguration
构造函数
DbConfiguration.Loaded += (sender, args) =>
args.ReplaceService<DbProviderServices>(
(s, _) => new SomeProviderServices(s, myhandler));
我得到一个异常,说明EF已经加载,我现在无法更改Loaded事件处理程序。
在这种情况下,我应该采取什么行动?感谢。
答案 0 :(得分:0)
您可以采取一些措施。我举例修改了网络配置:
<entityFramework codeConfigurationType="MyNamespace.Assembly1.MyConfigurationClass, MyNamespace.Assembly1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b254a7d323adadef">
答案 1 :(得分:0)
您必须在应用程序启动时定义Loaded事件。 在MVC应用程序中,您可以将此行代码放在Global.asax Application_Start(MVC 4)或启动配置(OWIN)方法中:
DbConfiguration.Loaded += (sender, args) =>
args.ReplaceService<DbProviderServices>(
(s, _) => new SomeProviderServices(s, myhandler));
Loaded是DBConfiguration中的静态事件,因此当您的实体框架启动时,您将执行此事件。