Добавление узлов в дерево через LINQ создает «оператор запроса не поддерживается» во время выполнения - PullRequest
2 голосов
/ 04 ноября 2008

Я пытаюсь разобраться с проблемой LINQ. Конечная цель - загрузить представление дерева с данными, полученными из LINQ to SQL (представление). Проблема в том, что, когда я пытаюсь получить доступ к полученным данным, он продолжает выдавать «оператор запроса, не поддерживаемый во время выполнения». Используемый код не более:

    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, он работал бы как положено, однако при этом возникает проблема с изменением его на положение массива Пожалуйста, направьте меня туда, где мой недостаток в логике.

1 Ответ

3 голосов
/ 04 ноября 2008

Linq-запросы не являются списками, поэтому у них нет индекса. Для перебора всех элементов вы можете использовать foreach, например, так:

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

Если вы хотите преобразовать запрос в список:

lqHospitalList.ToList

или массив:

lqHospitalList.ToArray
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...