在C#中使用查询语法时“枚举没有产生结果”。如何检索输出

时间:2010-05-26 05:41:27

标签: c# linq linq-to-dataset linq-query-syntax

我创建了此查询以从数据库中获取一些结果。 Here is my table structure

正在发生什么事情。

  

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 个答案:

答案 0 :(得分:2)

将您的查询分成几部分,看看哪个集合没有元素。

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