LINQ to SQLで複合キーのExists句を書く
単一のExists句を表す場合はContainsを使用していましたが、複数のキーでExistsを実現させねばならない状況に陥ったので、勉強がてらにまとめました。
単一キーのExistsの場合
基となるSQL
SELECT * FROM table_A as A WHERE EXISTS ( SELECT * FROM table_B As B WHERE A.Key1 = B.Key1 )
複合キーのExistsの場合
基となるSQL
SELECT * FROM table_A as A WHERE EXISTS ( SELECT * FROM table_B As B WHERE A.Key1 = B.Key1 AND A.Key2 = B.Key2 AND B.Key3 = @Key3 )