应该引用模块'System.Data.Linq'Version = 4.0.0.0,Culture = neutral,Publickeytoken = b77a5c561934e089'

jon*_*ona 6 c# asp.net datacontext web

我有一个Visual Studio 2012 Web应用程序(fw.4.5),我尝试linq到我的SQL数据库.我已经为我的项目添加了一个datacontext并将其放在根文件夹中.在datacontext文件中,我从SQL 2012 expressdatabase中添加了一个名为GlobalMenu的表.

我正在尝试使用以下命令使用linq访问数据:

DataContextDataContext db = new DataContextDataContext();
var menupages = from p in db.GlobalMenus
                select p;
Run Code Online (Sandbox Code Playgroud)

智能感知报告:

Module 'System.Data.Linq' Version=4.0.0.0, Culture=neutral, Publickeytoken=b77a5c561934e089' should be referenced
Run Code Online (Sandbox Code Playgroud)

当我编译并尝试运行我的应用程序时,我得到:

CS0012: The type 'System.Data.Linq.DataContext' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Run Code Online (Sandbox Code Playgroud)

System.Data.Linq 4.0.0.0在我的项目中被重新启用,我手动添加了

 <dependentAssembly>
    <assemblyIdentity name="System.Data.Linq" publicKeyToken="b77a5c561934e089"/>
    <bindingRedirect oldVersion="1.0.0.0-4.5.0.0" newVersion="4.0.0.0"/>
  </dependentAssembly>
Run Code Online (Sandbox Code Playgroud)

在web.config中的运行时部分.但是错误仍然存​​在.

另一个问题是当我将我的DataContext文件放入App_Code文件夹时,我得到另一个错误.

智能感知报告:无法解析符号'选择'

编译并运行Web应用程序后,我在设计器文件中的datacontext文件中遇到运行时错误.

using System.Data.Linq;
using System.Data.Linq.Mapping;
Run Code Online (Sandbox Code Playgroud)

无法解析符号'Linq'.

这个Web项目基于标准的"ASP.NET Web Forms应用程序",我正在尝试做的是退出基本编程,所以我无法看到我在这里做错了什么.

小智 4

此错误通常是由于 DLL 版本不匹配造成的。尝试删除bin文件夹并重建应用程序。