Pick different records from two tables

Asked

Viewed 82 times

0

I have a table offline:

id int
descricao string
online int
chave string

And another table online:

id int
descricao string
chave string

How do I select the table fields online which do not exist in the table offline (filtering through the column chave) via linq?

1 answer

4


Basically (Whereas you are using the EF( Entity Framework)):

MeuContexto db = new MeuContexto();//Representação das entidades do seu Banco de dados

ICollection<Offline> offline = db.Offline; //Todos os registros da tabela offline são passados para essa coleção

ICollection<Online> online = db.Online;//Mesmo que o de cima só que para tabela online

var filtrado = online.Where(x =>//x é a representação de um item na lista online no caso ele é um objeto "Online", obs: pode ser qualquer nome
                                 /*Where é a mesma coisa q o where no sql, 
                                   vai pegar uma lista onde os registros "batem" com a condição especificada*/

                                !offline.Any(y => //y é a mesma coisa q x só que ele é um objeto "Offline"
                                /*O método Any retorna true se algum item bater com as condições especificadas, no caso: 
                                offline.chave == online.chave*/
                                                 y.chave == x.chave
                                            )
                           );
/* Ou seja filtrado vai receber uma collection de "Online" onde:
Os registros onde "Where" 
não "!"
tem incidencia de chaves iguais na tabela offline "Any(y => y.chave == x.chave)" */
  • can you explain me better, because I’m still learning Linq. filtered would you receive a list? and online would be a list with all table items and offline a list with the other items?

  • 1

    @Italorodrigo ready, I hope I was clear

Browser other questions tagged

You are not signed in. Login or sign up in order to post.