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

时间:2010-10-25 23:11:28

标签: linq-to-sql visual-studio-2010

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

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

  1. 类型或命名空间名称'Linq' 命名空间'System.Data'
  2. 中不存在
  3. 类型或命名空间 找不到名称'EntitySet'
  4. 我在这里和其他网站上发现了各种类似的问题,所有这些似乎都说需要添加一些额外的装配。

    我添加了所有建议,问题仍然存在。另一个奇怪的事情是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"/>
    

4 个答案:

答案 0 :(得分:15)

我发现this link为我解决了这个问题。网是必须将以下内容添加到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>

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

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

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

答案 1 :(得分:7)

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

答案 2 :(得分:7)

重要的是,您必须在网络配置中设置

    <system.web>
    <compilation debug="true" targetFramework="4.0"/>
</system.web>

答案 3 :(得分:3)

您可以尝试以下操作:

添加对 System.Data.Linq 的引用(右键单击References文件夹|选择添加引用|选择.Net选项卡(默认选中)|选择 System.Data.Linq 引用|单击“确定”。

我希望这会对你或其他人有所帮助。