Entity Framework: eseguire una query su un tavolo di collegamento / molti a molti
-
21-08-2019 - |
Domanda
Sto cercando di eseguire una query utilizzando LINQ to entità a che un'entità / tabella non contiene gli stessi valori prima che io aggiorno.
La struttura del database è la seguente:
Users User_IPAddresses IPAddresses
----- ---------------- -----------
UserID >------ UserID ------< IPAddressID
User IPAddressID Address
Quindi, la struttura dell'oggetto entità è la seguente
UserSet IPAddressSet
------- >-----< ------------
User IPAddress
Tutti i campi ID sono le chiavi primarie, in modo che la tabella di collegamento (User_IPAddresses) devono contenere righe univoche.
Il problema che sto avendo è che non riesco a ottenere la mia testa intorno a come controllare le entità in modo che io non violare il vincolo di riga univoco nella tabella User_IPAddresses prima che io aggiorno.
Qualsiasi guru EF là fuori che mi può aiutare?
Soluzione
//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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow