MVC3 EF4 POCO存储库/ UnitOfWork连接错误
我实施了Gil Fink的T4 Repository / Unit of Work模板,用于我正在开发的一个项目中,这是我使用MVC的第一个全面项目。 然而,我得到了一个我以前没有得到的错误,我无法追查到它。 我不知道这是模板的东西,还是只是一个设置错误的地方,但现在我输了。 我希望有人能够阐明这种情况。
这是我的框架设置:
我正在做一个数据库优先设计,并使用EF通过Microsoft的ADO.NET POCO实体生成器创建POCO类。 然后我使用T4工具创建存储库和工作模式单元。 使用该设置以及所有生成的类和存储库,我使用Ninject for DI将它实现到MVC应用程序中。 此时我正在使用Controller Factory使用MVC 2方法,计划稍后将其更改为IDependencyResolver方法。
当我使用硬编码的Mock存储库时,应用程序按照它应该的方式工作,但是当我将其更改为使用IRepository绑定时,出现以下错误:“提供的连接无效,因为它包含的映射或元数据信息不足。参数名称:connection“这表明EF连接到数据库的连接字符串不正确,但是它是由ADO.NET实体数据模型生成的默认字符串。 也许它也是.edmx设置的东西。
这是我的连接字符串(使用方便的Nerd Dinner数据库布局)
<add name="NerdDinnerEntities"
connectionString="metadata=
res://*/Model1.csdl|
res://*/Model1.ssdl|
res://*/Model1.msl;
provider=System.Data.SqlClient;
provider connection string="Data Source=Wayne;Initial Catalog=NerdDinner;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True""
providerName="System.Data.EntityClient" />
任何有任何想法/提示等的人,我都会非常感激。
编辑:这里是我使用的T4模板的链接:实体框架的Repository和工作单元T4模板
编辑2:错误是与家里做的事情我使用DI与工作单位。 当我删除DI,并手动在控制器中具有依赖关系时,它可以工作。 当我尝试实施DI时,它会中断。
res://*/Model1.csdl|
该*是通配符,表示EF“扫描资源的所有程序集”。 无论出于何种原因,此扫描都有可能找不到组件。
将*更改为您的程序集名称:
res://My.Assembly.Name/Model1.csdl|
如果您使用NuGet来安装您的Ninject依赖项,它喜欢在NinjectWebCommon.cs
设置您的DI绑定。 如果加载DI绑定需要实例化实体框架上下文,则在应用程序生命周期中发生这种情况太早,并且应用程序无法正确解释连接字符串。
如果您认为这可能是您正在发生的事情,请参阅我的答案以获取更多信息。
链接地址: http://www.djcxy.com/p/48593.html上一篇: MVC3 EF4 POCO Repository/UnitOfWork Connection Error
下一篇: Ninject 2.1 ActivationException : Error activating string