内部联接以获取不在表中的那些

时间:2012-02-12 22:29:03

标签: .net database linq entity-framework

我的数据库中有两个表。一个人和一个教练桌。人员表包含所有人,如果其中一个人是教练,他的身份证将在教练表中。 我需要找到所有不是教练的人......然后将它们列在一个列表中。 我试过了:

var query = from es in gr.people
                            join esh in gr.coaches on es.id equals esh.personID
                            where es.id != esh.personID
                            select es;

而且:

var query = from es in gr.people
                            join esh in gr.coaches on es.id equals esh.personID
                            where es.id != esh.personID && es.id.hasValue
                            select es;

但是最后一个并没有使用.hasValue。到目前为止,它不起作用:( 任何人都可以帮助我或给我一个暗示吗?

1 个答案:

答案 0 :(得分:7)

尝试:

var result = gr.people.Where(p => !gr.coaches.Any(c => c.personID == p.id));