2010-05-26 1112 views
1

我已经创建了此查询来从数据库中获取一些结果。 Here is my table structure在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"); 

我表演上 数据表此查询,并希望它返回我 一个数据BLE。

在这里,我要选择从表1中不同的部门,以及这将是我的下一个任务。如果可能,请回答。

+0

如果将其重写为SQL并直接对数据库执行,会发生什么?它会返回结果吗? – 2010-05-26 05:50:07

+0

@塞巴斯蒂安:是的,它正在返回我期望的结果集。 – 2010-05-26 05:50:52

+2

然后恐怕你需要对数据库进行查询。什么是生成并发送到数据库的声明?它与您的原始SQL查询有何不同?如果你看到Linq2SQL的错误,这可以帮助你在查询中找到错误。 – 2010-05-26 05:54:22

回答

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

Thx的支持,虽然我解决了问题,就像你说的一样,但在你回答之前的一两个小时。 – 2010-05-27 06:05:54