确定用于存储Linq查询的Object类型

时间:2010-07-03 16:44:48

标签: vb.net linq-to-sql

我正在使用VB .Net,因此我无法访问var或者这将是一件简单的事情。

现在我的查询如下

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.IEnumerable 1[RSSAdmin2.RSError]]]' to type 'System.Linq.IOrderedQueryable 1 [System.Linq.IGrouping {{1 }}

我不知道如何摆脱返回对象的VB $ AnonymousType_1部分。

我是否在这里正确的轨道上,或者我完全错过了什么?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下

Dim errors = (From e In db.RSErrors 
              Where e.UserID = "msarchet" 
              Group e By e.Type Into t = Group).AsEnumerable

这样做基本上将其设置为

  

Dim errors As Object [无论表达式返回什么]