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?

È stato utile?

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
scroll top