J'ai une table appelée Game
, qui contient 4 colonnes pour les ID de joueur. Et j'ai aussi une table appelée Player
. Lorsque j'essaie de compter tous les jeux auxquels un joueur a participé, je n'obtiens que les joueurs de la première colonne du tableau Game
. J'ai défini des clés étrangères pour toutes les tables, et cela s'affiche correctement dans le concepteur de table. De l'image ci-dessous, vous pouvez voir qu'il doit compter à partir Blue1 + 2 et + 2 red1, mais il ne compte que de Blue1
...linq à sql ne comptant pas toutes les colonnes
J'ai essayé aussi de créer une méthode pour sélectionner manuellement tous les jeux:
public int GetPlayerGames(int playerID)
{
return (from game in db.Games
where game.Blue1 == playerID
|| game.Blue2 == playerID
|| game.Red1 == playerID
|| game.Red2 == playerID
select game).Count();
}
Mais quand je l'utilise dans une requête LINQ
return from player in db.Players
where GetPlayerGames(player.ID) > 0
select player;
Je reçois cette erreur:
Method 'Int32 GetPlayerGames(Int32)' has no supported translation to SQL.
Ressemble Jouer er est une relation de 1 à plusieurs. Dans votre enregistrement de jeu, existe-t-il un enregistrement dans lequel toutes les valeurs d'ID de joueur sont remplies? –