我正在使用VB .Net进行此操作,因此我无权访问var
或者这将是一件简单的事情。确定要用来存储Linq查询对象的类型
现在我的查询如下
Dim errors As IOrderedQueryable(Of IGrouping(Of String, RSError)) = (From e In db.RSErrors
Where e.UserID = "msarchet"
Group e By e.Type Into t = Group).AsEnumerable
所以我用这个LinqPad查询可以帮助我确定对象将是什么样子。我找回了一个IOrderQueryable(Of RSError)
,其中包含一个IGrouping(Of String, RSError)
,用于查询返回的每个分组对象。
但是,我最终以当前对象类型errors
为IOrderedQueryable(Of IGrouping(Of String, RSError))
,因为我在VS中遇到了转换错误。
无法转换类型的对象“System.Data.Linq.DataQuery
1[VB$AnonymousType_1
2 [System.String,System.Collections.Generic.IEnumerable1[RSSAdmin2.RSError]]]' to type 'System.Linq.IOrderedQueryable
1 [System.Linq.IGrouping2[System.String,RSSAdmin2.RSError]]'.
我不知道如何摆脱返回对象的VB $ AnonymousType_1部分。
我是否在正确的轨道上,或者我完全错过了某些东西?
我能做到它隐含着......叹了口气,这是我在需要显式声明的条件下工作所得到的。 – msarchet 2010-07-03 16:52:43
是的我明白隐式声明做什么,它的工作原理,谢谢你启动我的星期六大脑 – msarchet 2010-07-03 16:55:38
不,它不会创建'Object'类型。这在VB9中发生了变化,它实际上会创建表达式返回的特定类型,就像C#3中的'var'关键字一样。 – Guffa 2010-07-03 16:56:43