断电重启后 Visual Studio 2010 将无法正确编译 LINQ

问题描述 投票:0回答:2

我有一个相当大的解决方案可以正确编译,直到我的电源耗尽。

现在,我在一个项目中定义了一个标准的 Linq to Sql DataContext 类,并且它可以正确编译,但是引用该程序集的另一个项目拒绝正确编译 Linq。

我遇到类似

的编译错误
“DataLayer.AdminDataContext”:using 语句中使用的类型必须隐式转换为“System.IDisposable”

从简单

using (DataLayer.AdminDataContext context = new DataLayer.AdminDataContext()) {...}

以及类似

的错误
'System.Data.Linq.Table'1' 不包含 'Where' 的定义,并且找不到接受类型为 'System.Data.Linq.Table'1' 的第一个参数的扩展方法 'Where' (您是否缺少 using 指令或程序集引用?)

来自

var users = context.Users.Where(u=>u.Username == Username);

我已经清除了

中的所有文件

Windows\Microsoft.Net\Framework 2.0.50727\临时 ASP.NET 文件 Windows\Microsoft.NET\Framework 4.0.30319\临时 ASP.NET 文件 Windows\Microsoft.NET\Framework64 2.0.50727\临时 ASP.NET 文件 Windows\Microsoft.NET\Framework64 4.0.30319\临时 ASP.NET 文件

我已经尝试过“干净的解决方案”以及我可以炮制的每种重建变体,但成功率为零。 有谁知道为什么解决方案中的一个项目无法编译,而其他项目可以编译? DataLayer 项目似乎可以很好地编译 Linq,并且可以毫无问题地识别“using”和“Where”,而其他项目则无法编译。

visual-studio-2010 linq-to-sql
2个回答
0
投票

在黑暗中拍摄,但尝试使用 /ResetSkipPkgs 开关启动 VS

http://msdn.microsoft.com/en-us/library/ms241276(VS.80).aspx


0
投票

”不包含“Where”的定义,并且没有扩展方法“Where”接受类型为“

”的第一个参数

当缺少对 System.Core 程序集的引用或文件顶部缺少“using System.Linq”时,我会看到此错误。

© www.soinside.com 2019 - 2024. All rights reserved.