命名空间'System.Data'等中不存在类型或命名空间名称'Linq'

Kdg*_*Dev 12 visual-studio-2010 linq-to-sql

我刚刚在Visual Studio 2010中创建了一个Linq-to-SQL .dbml文件.

我收到了以下2个错误,共计60次,大多数是第一次.

  1. 命名空间"System.Data"中不存在类型或命名空间名称"Linq"
  2. 找不到类型或命名空间名称"EntitySet"

我在这里和其他网站上发现了各种类似的问题,所有这些似乎都说需要添加一些额外的装配.

我添加了每一个建议,问题仍然存在.另一个奇怪的事情是VS2010本身没有强调编辑器屏幕中的错误,但它确实在错误日志中显示它们.

无论如何,我已经看到了所有现有主题并应用了他们的解决方案,问题仍然存在.

一些技术细节:

  • 我正在运行Windows 7 32位.
  • 我仍然安装了Visual Studio 2008 SP1.我刚刚安装VS2010并没有删除旧版本.
  • 我正在运行MSSQL server 2008 R2.

这是我的web.config文件中列出的程序集:

<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Services.Client, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Services.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Run Code Online (Sandbox Code Playgroud)

Hot*_*cks 15

我发现这个链接解决了它.网是必须将以下内容添加到web.config:

<configuration>
  <system.web>
     <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      </assemblies>
    </compilation>
   </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

请注意,配置/ system.web/compilation标记已经存在,并且需要添加程序集/添加程序集标记.即使在构建时VS很容易找到System.Data.Linq.

失败发生在App_Code.LinqToObservations.designer.cs中,Linq从我的LinqToObservations.dbml文件生成的代码.

(附加背景:我可能会遇到这种情况,因为我使用此处找到的程序启用了Linq .)


mar*_*ext 7

除了我的Windows 7是64位之外,我在完全相同的配置上遇到了同样的问题.通过做什么解决[project name] -> References -> Add reference -> System.Data.Linq为什么你手动添加引用?


小智 7

重要的是,您必须在webconfig中设置

    <system.web>
    <compilation debug="true" targetFramework="4.0"/>
</system.web>
Run Code Online (Sandbox Code Playgroud)