使用EF4作为单独项目的编译器错误比我的MVC项目

时间:2010-11-06 17:18:44

标签: asp.net-mvc-2 entity-framework-4

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

  

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

     

源文件:C:\ Users \ Kevin \ documents \ visual studio 2010 \ Projects \ HandiGamer \ HandiGamer.Domain \ Entities \ HGDomainModel.Designer.cs Line: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文件中有HGEntities

<?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>

我是否需要将连接添加到我的MVC Web.Config或其他什么?

1 个答案:

答案 0 :(得分:2)

是的,您需要将其添加到MVC Web.Config文件中。

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