3つのテーブル(およびエンティティモデル内の対応するエンティティ)がありますゲーム:Id-primaykey...その他の列
プレーヤー:ID-主キー...他の列
GamePlayer(プレーヤーは多くのゲームに参加できます)GameId->GamePlayerIdからの外部キー->Playerからの外部キー...他の列
私のコードでは、gameIdとplayerIdを他の方法で利用できます。これを使用して、プレーヤー(playerId)が特定のゲーム(gameId)に参加しているかどうかを知りたいです。だから私はこれをやっています:(エンティティは私のコンテキストオブジェクトです)
IQueryable query = entity.GamePlayer.where(gp =>((gp.Game.Id == gameId)&&(gp.Player.Id == playerId)))クエリが行を返す場合、プレーヤーが参加していることがわかりますそのゲームで。
エンティティ参照に関する複数のMSDNブログを読みましたが、混乱しています。MSDNは、最初にEntityReferenceオブジェクトのIsLoadedを確認する必要があり、ロードされていない場合はエンティティをロードする必要があり、それをクエリで使用することを推奨しているようです。
GamePlayerにはGamePlayer.GameReferenceとGamePlayer.PlayerReferenceがありますが、GamePlayerオブジェクトが手元にないため、参照がロードされているかどうかを確認できません。GamePlayerテーブルは、2つの1...*関係を保持します。GameIdとPlayerIdのみを使用してGamePlayerにクエリを実行する必要があります。私はここで何が間違っているのですか?
代わりに、Player(またはGame)オブジェクトを(IDを使用して)取得し、代わりにGamePlayerエンティティコレクションを確認する必要がありますか?SQLはとてもシンプルでした。これが非常に単純な場合、申し訳ありませんが、SQLクエリをエンティティクエリに変換するのに苦労しています。