我在Visual Studio 2010,Visual Basic和使用Linq中遇到了一个奇怪的问题。我的LAMDA表达式没有出现在智能中。我正在进行的项目是在Visual Studio 2008中创建的,我将其转换为Visual Studio 2010项目。

这是我试图运行的表达:

ClockItemsColl.Filter = ClockItemsColl.AsQueryable().OrderBy(d >= d.Second)

但是我遇到的错误是:

在这种情况下,“ D”是无法访问的,因为它是“朋友”。

我也尝试了

ClockItemsColl.Filter = ClockItemsColl.AsQueryable().OrderBy(Function(d As ClockItems) d >= d.Second)

但是仍然会产生错误,我无法造成头部或尾巴。

超载分辨率失败了,因为无法使用这些参数来调用“订单”:扩展方法“公共函数订单(of tkey)(keySelector as system.func(of BusinessObjects.ClockItems,tkey))as system.linq.iorderedenumoblect(businessObjects of BusinessObjects .ClockItems)'System.Linq.edumobles中定义:操作员'> ='未针对'BusinessObjects.ClockItems'和'Integer?'定义。扩展方法的“ public函数订单(tkey)(keyselector为system.func(of BusinessObjects.clockitems,tkey))为system.linq.iorderedenumerable(of BusinessObjects.ClockItems)'system.linq.enumoser中定义的:类型参数的(S)不能从这些参数中推断出来。明确指定数据类型可能会纠正此错误。扩展方法的公共函数订单(tkey)(keyselector as system.linq.expressions.expressions.func(of System.func(of BusinessObjects.ClockItems,tkey,tkey))))为system.linq.iorderedqueryable(of BusinessObjects.ClockItems)' 'system.linq.queryable':运算符'> ='未针对'BusinessObjects.ClockItems'和'Integer?'定义。扩展方法的公共函数订单(tkey)(keyselector as system.linq.expressions.expressions.func(of System.func(of BusinessObjects.ClockItems,tkey,tkey))))为system.linq.iorderedqueryable(of BusinessObjects.ClockItems)' 'System.Linq.Queryable':不能从这些参数中推断出类型参数的数据类型。明确指定数据类型可能会纠正此错误。

我正在使用EntitySpaces与Datalayer进行交互,这是我第一次使用Linq,因此我正在经历一些成长的痛苦。

谢谢你的时间。

有帮助吗?

解决方案

我相信您想要的是更接近的:

ClockItemsColl.Filter = ClockItemsColl.AsQueryable().OrderBy(Function(d) d.Second)

这个网站 学习VB LINQ语法是一个很棒的“去”。

让我知道是否有其他事情出现。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top