LINQ:无法将查询结果转换为列表

时间:2018-08-07 20:25:16

标签: vb.net linq

我无法使用.ToList()函数将下面的LINQ查询转换为列表。

它不是Intellisense中的选项。如果我在查询末尾强制使用.ToList(),则整个查询都会“呈红色弯曲”,并且错误提示ToList不是HRAReport的成员。

我不希望有这么大的讨厌的构造函数,并在类中完成所有属性设置,但是我找不到将hraRow和ddRow对象传递给构造函数的方法。

我有两个数据表对象。 hraRow具有大多数数据,但是我需要从ddRow对象中拉出两列,因此需要进行联接。

我不喜欢Linq的lambda版本,这就是为什么我使用详细/查询方法。

我很生锈-如您所知-请保持温柔。

Dim results As List(Of HRAReport) = 
    From hraRow In dtHRA.AsEnumerable
    Join ddRow In dtDirectDeposit.AsEnumerable On hraRow.Field(Of String)("SS#") Equals ddRow.Field(Of String)("SS#")
    Select New HRAReport(hraRow.Field(Of String)("SS#"), 
                         hraRow.Field(Of String)("Name - Last,First"), 
                         hraRow.Field(Of String)("Benefit Plan Name"),
                         hraRow.Field(Of String)("HRA Annual Election"), 
                         hraRow.Field(Of String)("HRA Benefit Start Date"), 
                         hraRow.Field(Of String)("HRA Benefit Term Date"),
                         hraRow.Field(Of String)("Address 1"), 
                         hraRow.Field(Of String)("Address 2"), 
                         hraRow.Field(Of String)("City"), 
                         hraRow.Field(Of String)("State"), 
                         hraRow.Field(Of String)("Zip Code"),
                         ddRow.Field(Of String)("Account #"), 
                         ddRow.Field(Of String)("ABA #"), 
                         hraRow.Field(Of String)("Plan"), 
                         hraRow.Field(Of String)("Debit Card"), 
                         hraRow.Field(Of String)("Health Plan Code"),
                         hraRow.Field(Of String)("Email"), 
                         hraRow.Field(Of String)("Termination Date"))

1 个答案:

答案 0 :(得分:0)

如果在末尾添加await,则试图将.ToList()的实例强制转换为列表。您应该在查询本身上调用它:

HRAReport

请注意额外的一对括号。

(我希望这是vb.net中的正确语法。我只是将其扔到了telerik转换器中)