MVC3 EF4 POCO存储库/ UnitOfWork连接错误

Way*_* W. 7 asp.net-mvc .net-4.0 entity-framework-4

我实施了Gil Fink的T4存储库/工作单元模板,用于我正在开发的项目,这是我使用MVC的第一个全面项目.然而,我收到的错误是我以前没有得到的,我无法追踪它.我不知道这是模板的东西,还是我设置错误的设置,但我现在正处于失败状态.我希望有人能够对这种情况有所了解.

这是我的框架设置:

  • MVC 3 Beta
  • SQL Server 2008 R2
  • Ninject v2.1.0.76
  • EF4 POCO
  • 解决方案中的3个项目:数据,实体和MVC应用程序.

我正在进行数据库优先设计,并使用EF通过Microsoft的ADO.NET POCO实体生成器创建POCO类.然后,我使用T4工具创建存储库和工作模式单元.通过该设置以及生成的所有类和存储库,我使用Ninject for DI将其实现到MVC应用程序中.我此时使用的是使用Controller Factory的MVC 2方法,并计划稍后将其更改为IDependencyResolver方法.

当我使用硬编码的Mock存储库时,应用程序可以正常工作,但是当我将其更改为使用IRepository绑定时,我收到以下错误:"提供的连接无效,因为它包含的映射或元数据信息不足.参数名称:connection"这表明EF连接到DB的连接字符串不正确,但它是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=&quot;Data Source=Wayne;Initial Catalog=NerdDinner;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True&quot;"
providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)

任何有任何想法/提示等的人,我都会非常感激.

编辑:这里是我正在使用的T4模板的链接: 实体框架的存储库和工作单元T4模板

编辑2:错误与家庭有关我正在使用DI与工作单位.当我删除DI,并在控制器中手动拥有依赖项时,它的工作原理.当我尝试实现DI时,它会中断.

Joh*_*ell 3

res://*/Model1.csdl|
Run Code Online (Sandbox Code Playgroud)

该 * 是一个通配符,表示 EF“扫描资源的所有程序集”。无论出于何种原因,此扫描都可能找不到程序集。

将 * 更改为您的程序集名称:

res://My.Assembly.Name/Model1.csdl|
Run Code Online (Sandbox Code Playgroud)