2008-11-03 44 views
2

我想让我的头绕着LINQ问题。最终目标是使用从LINQ to SQL(视图)获取的数据加载树视图。问题是当我尝试访问获取的数据时,它一直抛出“运行时不支持的查询运算符”。所涉及的代码是不超过:通过LINQ向树添加节点在运行时创建“查询运算符不受支持”

Dim tasklistdata As New lqDataContext 
    Dim UserID As Integer 

    UserID = (From vwUser In tasklistdata.Operators _ 
      Where vwUser.UserName Is Login.txtUsername.Text _ 
      Select vwUser.OperatorID).Single 

    Dim lqHospitalList = From vwHospitalList In tasklistdata.SPM_Accounts _ 
          Where vwHospitalList.OperatorID = UserID _ 
          Order By vwHospitalList.CustomerName, vwHospitalList.Class _ 
          Select vwHospitalList.CustomerName, vwHospitalList.Class, vwHospitalList.ClassCount, vwHospitalList.Charges 

    tvHospitalSelect.Nodes.Add(lqHospitalList(0).CustomerName) 

如果我修改代码,lqHospitalList.First.CustomerName它能正常工作,但是将其更改为阵列位置是问题出现。请指点我的逻辑缺陷。

回答

3

Linq querys不是列表,所以它们没有索引。遍历所有的项目,你可以使用foreach像这样:

For Each hospital In lqHospitalList 
    tvHospitalSelect.Nodes.Add(hospital.CustomerName) 
Next 

如果您想查询转换到一个列表:

lqHospitalList.ToList 

或数组:

lqHospitalList.ToArray