【发布时间】:2010-11-01 21:28:51
【问题描述】:
我实现了 Gil Fink 的 T4 存储库/工作单元模板,用于我正在从事的项目,这是我使用 MVC 的第一个完整项目。但是,我遇到了一个以前没有遇到的错误,我无法追踪它。我不知道是模板的问题,还是只是我设置错误的某个设置,但我现在不知所措。我希望有人能够阐明这种情况。
这是我的框架设置:
- MVC 3 测试版
- SQL Server 2008 R2
- Ninject v2.1.0.76
- EF4 POCO
- 解决方案中的 3 个项目:数据、实体和 MVC 应用程序。
我正在做一个 DB 优先设计,并通过 Microsoft 的 ADO.NET POCO 实体生成器使用 EF 创建 POCO 类。然后我使用 T4 工具创建存储库和工作单元模式。通过该设置以及生成的所有类和存储库,我使用 Ninject for DI 将其实现到 MVC 应用程序中。我现在使用的是使用控制器工厂的 MVC 2 方法,并计划稍后将其更改为 IDependencyResolver 方法。
当我使用硬编码的 Mock 存储库时,应用程序可以正常工作,但是当我将其更改为使用 IRepository 绑定时,我收到以下错误: “提供的连接无效,因为它包含的映射或元数据信息不足。 参数名称:连接" 这表明 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 and Unit of Work T4 Template for Entity Framework
编辑2: 该错误与我在工作单元中使用 DI 的家庭有关。当我删除 DI 并手动在控制器中添加依赖项时,它可以工作。当我尝试实现 DI 时,它会中断。
【问题讨论】:
标签: asp.net-mvc .net-4.0 entity-framework-4