重载决策失败,因为没有可访问的“Any”对这些参数最具体

时间:2014-03-17 07:00:30

标签: .net vb.net linq

突然现有的代码开始提供以下错误。奇怪的是,这个代码在其他机器上工作正常。

Overload resolution failed because no accessible 'Any' is most specific for these arguments:
Extension method 'Public Function Any() As Boolean' defined in 'System.Linq.Enumerable': Not most specific.
Extension method 'Public Function Any() As Boolean' defined in 'System.Linq.Enumerable': Not most specific.

在代码

下面的sites.any()上
Dim sites As IEnumerable(Of A.Commerce.ContentManagement.Entity.Site) = SiteManager.GetSitesByType(SiteType.Website)

If ((Not IsNothing(sites)) And sites.Any()) Then

我在一些帖子中看到了解决方法,它们在调用语法中说错了。但就我而言,这在另一台计算机上工作正常。我的机器出了什么问题吗?只有我记得我已经使用GAC进行了一些安装/卸载。有人可以帮忙吗?

编辑::

刚观察到其具体针对解决方案和机器组合。因为下面的代码可以在单独的项目上使用.Any()函数。

' Create a list of Integers.    
Dim numbers As New List(Of Integer)(New Integer() {1, 2})

' Determine if the list contains any items. 
Dim hasElements As Boolean = numbers.Any()

' Display the output. 
Dim text As String = IIf(hasElements, "not ", "")
MsgBox("The list is " & text & "empty.")

编辑2:所有Linq方法都出错。就像没有可访问的'First',没有可访问的'FirstOrDefault',没有可访问的'Where'等等...任何帮助??

2 个答案:

答案 0 :(得分:0)

最后我解决了......:)

System.Core.dll是罪魁祸首。不知怎的,我的解决方案开始引用version 3.5 of System.Core.dll,尽管我的解决方案的目标是.Net Framework 4.5。版本3.5具有System.Linq.Enumerable函数的不同实现。

感谢大家的帮助。

答案 1 :(得分:0)

我处于类似情况,发现了两件事。我正在按照一个教程,其中有人使用泛型类来演示模型和视图的使用。然后,他继续演示如何从数据库生成视图。

然而,他并没有提到前一个类,它具有firstname,surname等属性,因为它们现在反映在从linq到sql类创建的datacontext中。

我发现这是导致多个引用的原因,一旦我删除了上一个类,一切正常。