При использовании синтаксиса запроса в C# "Перечисление не дало результатов". Как получить вывод

Я создал этот запрос для получения некоторого результата из базы данных. Вот моя структура таблицы.

Какая точность происходит.

DtMapGuestDepartment в таблице 1

DtDepartment как Таблица 2

Используются

    var dept_list=  from map in DtMapGuestDepartment.AsEnumerable()
                    where map.Field<Nullable<long>>("GUEST_ID") == DRowGuestPI.Field<Nullable<long>>("PK_GUEST_ID")
                    join 
                    dept in DtDepartment.AsEnumerable()
                    on map.Field<Nullable<long>>("DEPARTMENT_ID") equals dept.Field<Nullable<long>>("DEPARTMENT_ID")
                    select dept.Field<string>("DEPARTMENT_ID");

Я выполняю этот запрос к DataTables и ожидаю, что он вернет мне таблицу данных.

Здесь я хочу выбрать отдельный отдел из Таблицы 1, который будет моим следующим квестом. Пожалуйста, ответьте на это также, если это возможно.

1 ответ

Решение

Разбить ваш запрос на части и посмотреть, какая коллекция не имеет элементов.

var mapList = DtMapGuestDepartment.AsEnumerable().ToList();
var deptList = DtDepartment.AsEnumerable().ToList();

var queryResult1 = (
  from map in mapList
  where map.Field<Nullable<long>>("GUEST_ID") ==
    DRowGuestPI.Field<Nullable<long>>("PK_GUEST_ID") 
  select map
).ToList();

var queryResult2 = (
  from map in queryResult1
  join dept in deptList
    on map.Field<Nullable<long>>("DEPARTMENT_ID")
    equals dept.Field<Nullable<long>>("DEPARTMENT_ID") 
  select dept.Field<string>("DEPARTMENT_ID")
).ToList();
Другие вопросы по тегам