Entity Framework: executar uma consulta em uma tabela de vinculação / muitos para muitos relação

StackOverflow https://stackoverflow.com/questions/1074254

Pergunta

Eu estou tentando executar uma consulta usando LINQ to Entities para que uma entidade / tabela não contém os mesmos valores antes de atualizá-lo.

A estrutura da base de dados é como se segue:

Users             User_IPAddresses          IPAddresses
-----             ----------------          -----------
UserID   >------  UserID           ------<  IPAddressID
User              IPAddressID               Address

Assim, a estrutura do objeto de entidade é o seguinte

UserSet          IPAddressSet
-------  >-----< ------------
User             IPAddress

Todos os campos de identificação são chaves primárias, assim tabela de ligação (User_IPAddresses) deve conter as linhas exclusivas.

O problema que estou tendo é que eu não posso colocar minha cabeça em torno de como verificar as entidades para que eu não violar a restrição de linha exclusivo na tabela de User_IPAddresses antes de atualizá-lo.

Qualquer EF gurus lá fora, que pode me ajudar?

Foi útil?

Solução

//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;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top