0

我在 Visual Studio 2010、Visual Basic 和使用 linq 中遇到了一个奇怪的问题。我的 lamda 表达式没有显示在智能中。我正在处理的项目是在 Visual Studio 2008 中创建的,我已将其转换为 Visual Studio 2010 项目。

这是我要运行的表达式:

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

但是我得到的错误是:

'd' 在此上下文中不可访问,因为它是 'Friend'。

我也试过

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

但是仍然会产生错误,我无法确定它的正面或反面。

重载解析失败,因为无法使用这些参数调用可访问的“OrderBy”:扩展方法“公共函数 OrderBy(Of TKey)(keySelector As System.Func(Of BusinessObjects.ClockItems, TKey)) As System.Linq.IOrderedEnumerable(Of BusinessObjects .ClockItems)' 在“System.Linq.Enumerable”中定义:运算符“>=”未针对类型“BusinessObjects.ClockItems”和“Integer?”定义。在“System.Linq.Enumerable”中定义的扩展方法“Public Function OrderBy(Of TKey)(keySelector As System.Func(Of BusinessObjects.ClockItems, TKey)) As System.Linq.IOrderedEnumerable(Of BusinessObjects.ClockItems)”:数据类型不能从这些参数中推断出类型参数的 (s)。明确指定数据类型可能会更正此错误。扩展方法 'Public Function OrderBy(Of TKey)(keySelector As System.Linq.Expressions.Expression(Of System.Func(Of BusinessObjects.ClockItems, TKey))) As System.Linq.IOrderedQueryable(Of BusinessObjects.ClockItems)' 定义在“System.Linq.Queryable”:未为“BusinessObjects.ClockItems”和“Integer?”类型定义运算符“>=”。扩展方法 'Public Function OrderBy(Of TKey)(keySelector As System.Linq.Expressions.Expression(Of System.Func(Of BusinessObjects.ClockItems, TKey))) As System.Linq.IOrderedQueryable(Of BusinessObjects.ClockItems)' 定义在'System.Linq.Queryable':无法从这些参数推断类型参数的数据类型。明确指定数据类型可能会更正此错误。公共函数 OrderBy(Of TKey)(keySelector As System.Linq.Expressions.Expression(Of System.Func(Of BusinessObjects.ClockItems, TKey))) As System.Linq.IOrderedQueryable(Of BusinessObjects.ClockItems)' 在'System. Linq.Queryable':运算符 '>=' 没有为类型 'BusinessObjects.ClockItems' 和 'Integer?' 定义。扩展方法 'Public Function OrderBy(Of TKey)(keySelector As System.Linq.Expressions.Expression(Of System.Func(Of BusinessObjects.ClockItems, TKey))) As System.Linq.IOrderedQueryable(Of BusinessObjects.ClockItems)' 定义在'System.Linq.Queryable':无法从这些参数推断类型参数的数据类型。明确指定数据类型可能会更正此错误。公共函数 OrderBy(Of TKey)(keySelector As System.Linq.Expressions.Expression(Of System.Func(Of BusinessObjects.ClockItems, TKey))) As System.Linq.IOrderedQueryable(Of BusinessObjects.ClockItems)' 在'System. Linq.Queryable':运算符 '>=' 没有为类型 'BusinessObjects.ClockItems' 和 'Integer?' 定义。扩展方法 'Public Function OrderBy(Of TKey)(keySelector As System.Linq.Expressions.Expression(Of System.Func(Of BusinessObjects.ClockItems, TKey))) As System.Linq.IOrderedQueryable(Of BusinessObjects.ClockItems)' 定义在'System.Linq.Queryable':无法从这些参数推断类型参数的数据类型。明确指定数据类型可能会更正此错误。ClockItems, TKey))) 正如在“System.Linq.Queryable”中定义的 System.Linq.IOrderedQueryable(Of BusinessObjects.ClockItems)':未为类型“BusinessObjects.ClockItems”和“Integer?”定义运算符“>=”。扩展方法 'Public Function OrderBy(Of TKey)(keySelector As System.Linq.Expressions.Expression(Of System.Func(Of BusinessObjects.ClockItems, TKey))) As System.Linq.IOrderedQueryable(Of BusinessObjects.ClockItems)' 定义在'System.Linq.Queryable':无法从这些参数推断类型参数的数据类型。明确指定数据类型可能会更正此错误。ClockItems, TKey))) 正如在“System.Linq.Queryable”中定义的 System.Linq.IOrderedQueryable(Of BusinessObjects.ClockItems)':未为类型“BusinessObjects.ClockItems”和“Integer?”定义运算符“>=”。扩展方法 'Public Function OrderBy(Of TKey)(keySelector As System.Linq.Expressions.Expression(Of System.Func(Of BusinessObjects.ClockItems, TKey))) As System.Linq.IOrderedQueryable(Of BusinessObjects.ClockItems)' 定义在'System.Linq.Queryable':无法从这些参数推断类型参数的数据类型。明确指定数据类型可能会更正此错误。BusinessObjects.ClockItems 和“整数?”。扩展方法 'Public Function OrderBy(Of TKey)(keySelector As System.Linq.Expressions.Expression(Of System.Func(Of BusinessObjects.ClockItems, TKey))) As System.Linq.IOrderedQueryable(Of BusinessObjects.ClockItems)' 定义在'System.Linq.Queryable':无法从这些参数推断类型参数的数据类型。明确指定数据类型可能会更正此错误。BusinessObjects.ClockItems 和“整数?”。扩展方法 'Public Function OrderBy(Of TKey)(keySelector As System.Linq.Expressions.Expression(Of System.Func(Of BusinessObjects.ClockItems, TKey))) As System.Linq.IOrderedQueryable(Of BusinessObjects.ClockItems)' 定义在'System.Linq.Queryable':无法从这些参数推断类型参数的数据类型。明确指定数据类型可能会更正此错误。无法从这些参数推断类型参数的数据类型。明确指定数据类型可能会更正此错误。无法从这些参数推断类型参数的数据类型。明确指定数据类型可能会更正此错误。

我正在使用实体空间与我的数据层交互,这是我第一次使用 Linq,所以我正在经历一些成长的痛苦。

谢谢你的时间。

4

1 回答 1

0

I believe what you want is closer to this:

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

This site is a great 'go to' for learning VB linq syntax.

Let me know if anything else comes up.

于 2010-11-12T19:01:33.080 回答