Entity Framework: executar uma consulta em uma tabela de vinculação / muitos para muitos relação
-
21-08-2019 - |
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?
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