6

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

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

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

智能感知报告:

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 窗体应用程序”,而我正在尝试做的是退出基本编程,所以我看不出我在这里做错了什么。

4

4 回答 4

4

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

于 2013-08-12T07:28:23.573 回答
3

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

在您的项目中,右键单击“参考”部分标题并选择“添加参考”。浏览到程序集的位置(它应该在 'Assemblies->Framework->System.Data.Linq 下)

干杯

于 2015-05-11T23:15:41.777 回答
2

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

于 2013-08-18T16:00:11.473 回答
0

就我而言,Restart Visual Studio> delete the reference> add the right reference again> clean solution>rebuild solution有效。

于 2018-05-31T02:36:41.363 回答