模块';System.Data.Linq';Version=4.0.0.0,Culture=neutral,

本文关键字:neutral Culture Linq System Data 模块 Version | 更新日期: 2023-09-27 18:27:12

我有一个Visual Studio 2012 web应用程序(fw.4.5),我在其中尝试对sql数据库执行linq操作。我已经为我的项目添加了一个数据上下文,并将其放在根文件夹中。在数据上下文文件中,我从SQL 2012 express数据库中添加了一个名为GlobalMenu的表。

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

DataContextDataContext db = new DataContextDataContext();
var menupages = from p in db.GlobalMenus
                select p;

Intellisense报告:

Module 'System.Data.Linq' Version=4.0.0.0, Culture=neutral, Publickeytoken=b77a5c561934e089' should be referenced

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

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'.

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>

在web.config的运行时部分。然而,错误仍然存在。

另一个问题是,当我将DataContext文件放入App_Code文件夹时,我会遇到另一个错误。

Intellisense报告:无法解析符号"选择"

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

using System.Data.Linq;
using System.Data.Linq.Mapping;

无法解析符号"Linq"。

这个web项目基于标准的"ASP.NET web Forms应用程序",我想做的是退出基本编程,所以我看不出我在这里做错了什么。

模块';System.Data.Linq';Version=4.0.0.0,Culture=neutral,

此错误通常是因为DLL版本不匹配。请尝试删除bin文件夹并重新生成应用程序。

我认为这意味着您正在引用在另一个DLL(程序集)中定义的类/方法。您的项目需要有对此库(DLL/程序集)的引用,以便它可以编译您的项目。(与web/app配置文件无关)

在项目中,右键单击"引用"部分标题,然后选择"添加引用"。浏览到程序集的位置(它应该在"Assemblys->Framework->System.Data.Linq"下)

干杯

似乎还可以将"Linq to SQL classes"添加到"APP_Code"文件夹中。当数据上下文存储在APP_Code文件夹中时,我无法查询它。

在我的情况下,Restart Visual Studio>delete the reference>add the right reference again>clean solution>rebuild solution起作用。