linq子查询表交叉引用

时间:2012-03-02 20:56:08

标签: linq cross-reference supquery

如果该查询的ID值至少不包含一次作为tableB中的参考值,我想有条件地从tableA的查询中排除项目...像这样......

初始查询:

var jobs = from j in Jobs select j; // there's more, just keeping it simple...

我尝试过这些子查询......

基于条件的可选过滤:

jobs = jobs.Where(j => Bidders.Select(b => b.JobKey == j.JobKey) != null);

或者这个:

jobs = jobs.Where(j => Bidders.Select(b => b.JobKey == j.JobKey).Count() > 0);

这似乎没有过滤掉投标人表中没有条目的作业...... 我该怎么办?

1 个答案:

答案 0 :(得分:0)

如果没有导航属性,那么您对第一种方法有点接近:

jobs = jobs.Where(j => Bidders.Any(b => b.JobKey == j.JobKey));