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

Oed*_*dum 2 .net linq database 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;
Run Code Online (Sandbox Code Playgroud)

还有这个:

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;
Run Code Online (Sandbox Code Playgroud)

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

Kla*_*sen 7

尝试:

var result = gr.people.Where(p => !gr.coaches.Any(c => c.personID == p.id));
Run Code Online (Sandbox Code Playgroud)