Entity Framework: effectuer une requête sur une table de liaison / plusieurs à plusieurs
-
21-08-2019 - |
Question
Je suis en train d'effectuer une requête en utilisant LINQ à des entités qu'une entité / table ne contient pas les mêmes valeurs avant de le mettre à jour.
La structure de la base de données est le suivant:
Users User_IPAddresses IPAddresses
----- ---------------- -----------
UserID >------ UserID ------< IPAddressID
User IPAddressID Address
Ainsi, la structure de l'objet de l'entité est la suivante
UserSet IPAddressSet
------- >-----< ------------
User IPAddress
Tous les champs d'identification sont les clés primaires, de sorte que la table de liaison (de User_IPAddresses) doivent contenir des lignes uniques.
Le problème que j'ai est que je ne peux pas obtenir ma tête sur la façon de vérifier les entités afin que je ne viole pas la contrainte de ligne unique sur la table User_IPAddresses avant la mettre à jour.
Tous les gourous EF là-bas qui peut me aider?
La solution
//returns true if pair exists
public bool CheckIfUserIPPairExists(int ipID, int userID)
{
bool exists
= db.UserSet.Any(user=>user.UserID==userID
&& user.IPAddress.Any(ip=>ip.IPAddressID == ipID));
return exists;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow