キー値のペアを保持する3番目のテーブルに基づいて、2つのテーブル間に多対多の関連付けを設定しました。次に、他のデータを必要とせずに、右側のテーブルのキー値を左側でグループ化するクエリを実行したいと思います。
LeftTable { LeftID, LeftField1, LeftField2 }
JoinTable { LeftID, RightID}
RightTable { RightID, RightField1, RightField2 }
基本的に、JoinTableにクエリを実行し、SQLがどちらの側からもフィールドをフェッチしようとせずに、「LeftIDs」によってグループ化されたすべての「RightIDs」を取得する方法はありますか?JoinTableは、モデル内でそれ自体がエンティティではありませんが、関連付けにマップされます。
ObjectQueryとEntityCommand(ESQL)の両方を使用して少し実験しましたが、どちらも、必要のないRightTableに参加することで、他のフィールドに読み込まれるようです。
私のESQLは次のようになります。
SELECT lt.LeftID, (SELECT rt.RightID
FROM NAVIGATE(lt, MyModel.LeftToRightAssoc, RightTable) as rt)
FROM MyEntities.LeftTable as lt;
ただし、生成されたSQLはまだRightField1とRightField2でフェッチしています。
確かにこれを行うためのより簡単な方法があるはずですか?