我最近将我的网站项目更新为Ninject 3.0.0-rc3,之后我收到的错误是“提供的连接无效,因为它包含的映射或元数据信息不足”。 当我使用2.2.0.0版时,所有这一切都正常。
任何想法会导致出现此异常的原因以及如何解决它?
我正在使用EF而我的后端是SQL Server 2008 R2。
答案 0 :(得分:1)
我有同样的问题,我通过切换回扩展NinjectHttpApplication
而不是NinjectWebCommon.cs方法来修复它。有关详细信息,请参阅https://github.com/ninject/ninject.web.mvc/wiki/Setting-up-an-MVC3-application。
为了让Ninject 3升级工作,我不得不将以下绑定添加到我的绑定模块中:
Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
我认为问题的根源是在应用程序完全了解自己的上下文之前调用NinjectWebCommon.cs,因此如果将上下文实例化为一部分,实体框架无法弄清楚如何解析连接字符串设置绑定。这对许多项目来说都不是问题,但是我们使用数据库配置来确定首先加载哪些Ninject模块。可能会在应用程序生命周期的某个时间点调用Global的Application_Start
方法,因此在Global中设置绑定就可以了。