gpt4 book ai didi

asp.net-mvc - MVC3 EF4 POCO 存储库/UnitOfWork 连接错误

转载 作者:行者123 更新时间:2023-12-04 12:37:39 25 4
gpt4 key购买 nike

我实现了 Gil Fink 的 T4 Repository/Unit of Work 模板,用于我正在从事的项目,这是我使用 MVC 的第一个完整项目。但是,我遇到了一个以前没有遇到的错误,我无法追踪它。我不知道这是模板的问题,还是只是我设置错误的某个设置,但我现在不知所措。我希望有人能够对这种情况有所了解。

这是我的框架设置:

  • MVC 3 测试版
  • SQL Server 2008 R2
  • 忍者 v2.1.0.76
  • EF4 POCO
  • 解决方案中的 3 个项目:数据、实体和 MVC 应用程序。

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

    当我使用硬编码的 Mock 存储库时,应用程序可以正常工作,但是当我将其更改为使用 IRepository 绑定(bind)时,出现以下错误:
    “提供的连接无效,因为它包含的映射或元数据信息不足。
    参数名称:连接"
    这向我表明 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" />

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

    编辑:这是我正在使用的 T4 模板的链接:
    Repository and Unit of Work T4 Template for Entity Framework

    编辑2:
    该错误与我在工作单元中使用 DI 的家庭有关。当我删除 DI 并手动在 Controller 中添加依赖项时,它可以工作。当我尝试实现 DI 时,它会中断。

    最佳答案

    res://*/Model1.csdl|

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

    将 * 更改为您的程序集名称:
    res://My.Assembly.Name/Model1.csdl|

    关于asp.net-mvc - MVC3 EF4 POCO 存储库/UnitOfWork 连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4073213/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com