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

我实施了Gil Fink的T4 Repository / Unit of Work模板,用于我正在开发的一个项目中,这是我使用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连接到数据库的连接字符串不正确,但是它是由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和工作单元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