代码之家  ›  专栏  ›  技术社区  ›  Major Productions

将EF4用作MVC项目以外的单独项目时出现编译器错误

  •  0
  • Major Productions  · 技术社区  · 14 年前

    我试图遵循一个普遍的共识,即最好将域对象放在一个单独的项目中,而不是放在它们的MVC项目中,但是得到了以下编译器错误:

    指定的命名连接在配置中找不到,不打算与EntityClient提供程序一起使用,或者无效。

    源文件:C:\Users\Kevin\documents\visual studio 2010\Projects\HandiGamer\HandiGamer.Domain\Entities\HGDomainModel.Designer.cs行:44

    Line 42:         /// Initializes a new HGEntities object using the connection string found in the 'HGEntities' section of the application configuration file.
    Line 43:         /// </summary>
    Line 44:         public HGEntities() : base("name=HGEntities", "HGEntities")
    Line 45:         {
    Line 46:             this.ContextOptions.LazyLoadingEnabled = true;
    

    我有点困惑 在实体的App.Config文件中:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <connectionStrings>
        <add name="HGEntities" connectionString="metadata=res://*/Entities.HGDomainModel.csdl|res://*/Entities.HGDomainModel.ssdl|res://*/Entities.HGDomainModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\HandiGamer.mdf;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
      </connectionStrings>
    </configuration>
    

    1 回复  |  直到 14 年前
        1
  •  2
  •   Morteza Manavi    14 年前

    是的,您需要将它添加到MVCWeb.Config文件中。

    因为您有一个ASP.Net MVC项目,所以连接字符串必须出现在MVC项目的web.config中,运行时将在其中查找它。基本上,任何连接字符串都应该在可执行项目的配置文件中(即.Net线程从CLR开始的位置)。所以只要将整个连接字符串复制并粘贴到web.conig中,就完成了!