EXPRESSÃO LAMBDA COM INCLUDE

 Tópico anterior Próximo tópico Novo tópico

EXPRESSÃO LAMBDA COM INCLUDE

C#

 Compartilhe  Compartilhe  Compartilhe
#484950 - 16/10/2018 08:59:47

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Bom dia meus amigos!!!
Vou tentar explicar a minha dúvida e me desculpem se eu não for muito claro, ok?

Tenho uma tabela "Aluno";
Id    Nome                                  DataNascimento
1     Perci Mantovani Filho         02/07/1968
2     José Ricardo Pereira          13/05/1975

Tenho uma tabela "Turmas";
Id    Descricao
1     Segunda (Diurno)
2     Quarta (Noturno)

Tenho uma tabela "AlunosTurma":
Id    TurmaId    AlunoId
1         1                1
2         1                2


Agora preciso preencher um DataGridView com os alunos que fazem parte da turma 1 (Segunda (Diurno)):
var lista = db.AlunosTurma.Include("Aluno").Where(x => x.TurmaId == Util.id).OrderBy(x => x.Aluno.Nome).ToList();
dgvAlunos.DataSource = lista;

// aqui estou preenchendo uma List() com os registros da tabela "AlunosTurma" onde o Id da Turma é igual à variável "Util.Id".
// inclui a cláusula Include para retornar o nome do aluno. Meu resultado é esse:

Id    TurmaId    AlunoId    Nome
1          1               1          Perci Mantovani Filho
2          1               2          José Ricardo Pereira


Até aqui tudo bem, porém eu precisaria trazer também o CPF do aluno no DataGridView e não estou sabendo como fazer isso.
Alguém poderia me ajudar?


____________________________________________________
Você sabe que alguém te ama não pelo que ele fala, mas pelo o que faz.
O amor não sobrevive de teorias.




#484952 - 16/10/2018 10:28:45

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
O CPF do aluno está onde?

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#484953 - 16/10/2018 10:32:19

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Desculpe, é que eu coloquei apenas alguns campos no exemplo e esqueci justamente do CPF.
Mas o campo está na tabela Aluno.

____________________________________________________
Você sabe que alguém te ama não pelo que ele fala, mas pelo o que faz.
O amor não sobrevive de teorias.




#484957 - 16/10/2018 14:57:10

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Como você não está usando uma cláusula Select(), todos os campos de Aluno e de AlunosTurma estão incluidos. É um equivalente de um "INNER JOIN" do Sql.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#484958 - 16/10/2018 15:19:35

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Então, Kerplunk, mas quando vinculo o DataSource no DataGridView, traz o resultado que eu postei. Não teria que mostrar todos os outros campos?
Se eu fizer um foreach em cada item da lista eu consigo popular o DataGridView, mas aí eu tenho que criar as colunas manualmente, pensei que teria outra maneira sem ter que usar o foreach. Existe?

____________________________________________________
Você sabe que alguém te ama não pelo que ele fala, mas pelo o que faz.
O amor não sobrevive de teorias.




#484977 - 19/10/2018 09:14:21

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Bom, como ninguém mais respondeu, a maneira que eu consegui foi desvinculando o DataGridView do DataSource:

var lista = db.AlunosTurma.Include("Aluno").Where(x => x.TurmaId == Util.id).OrderBy(x => x.Aluno.Nome).ToList();

foreach (var item in lista)
{
    form.dgvAlunos.Rows.Add(item.Id, item.TurmaId, item.AlunoId, item.Aluno.Nome, item.Aluno.Cpf);
}

Depois de carregar uma List() com os registros da tabela, percorro cada item da lista e preencho o DataGridView.


____________________________________________________
Você sabe que alguém te ama não pelo que ele fala, mas pelo o que faz.
O amor não sobrevive de teorias.




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por PERCIFILHO em 20/10/2018 15:05:55