2008-11-03 33 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