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

时间:2010-10-04 17:26:09

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

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

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

我收到像

这样的编译错误
'DataLayer.AdminDataContext':在using语句中使用的类型必须可以隐式转换为'System.IDisposable'

来自一个简单的

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

之类的错误
'System.Data.Linq.Table'1< DataLayer.User>'不包含'Where'的定义,也没有扩展方法'Where'接受类型'System.Data.Linq.Table'1< DataLayer.User>'的第一个参数可以找到(您是否缺少using指令或程序集引用?)

来自

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

我清除了

中的所有文件

Windows \ Microsoft.Net \ Framework \ v2.0.50727 \ Temporary ASP.NET Files Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP.NET Files Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files

我尝试过“清洁解决方案”,并且每个Rebuild I的变体都可以编制,以取得成功。有没有人有任何想法为什么解决方案中的一个项目不能编译,而其他人会? DataLayer项目似乎可以很好地编译Linq,并且在没有问题的情况下识别“using”和“Where”,而另一个项目将无法编译。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

的第一个参数

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