При использовании синтаксиса запроса в C # «Перечисление не дало результатов». Как получить вывод - PullRequest
1 голос
/ 26 мая 2010

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

Что происходит точно.

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 Ответ

2 голосов
/ 26 мая 2010

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

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();
...