2012-02-12 2 views
2

私のデータベースには2つのテーブルがあります。人とコーチのテーブル。人のテーブルにはすべての人が含まれています。人の1人がコーチであれば、彼のIDはコーチのテーブルに表示されます。 私はコーチではないすべての人々を見つける必要があります...まだリストに投稿してください。 私が試してみました:テーブルにないメンバーを取得するための内部結合

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をALOWしません:

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; 

そして、これを。そして、これまでのところ、それは動作しません:( は誰も私を助けたり、私にヒントを与えることはできますか?

答えて

7

試してみてください。

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

ブリリアント...それはしようとしたとき、私はこの問題を回避するためにこれを使用し – Oedum

+0

仕事しますlinq-to-sqlオブジェクトのリストをlinq-to-sqlテーブルに参加させてください(コンパイラは型が等価でないb/cをブロックします)。 – bernie2436

関連する問題