I need to query Linq for an object called Client. This object has a relationship with another object, which is a List of phones. For each of the phones, there is a type: 'Casa', 'Comercial', 'Recado'
, etc.
I want to bring everything in the same query. How do I do this with Linq?
Here's the example of what's already done:
var pf = (from p in contexto.PFPJ
join pais in contexto.Pais on p.IDPais equals pais.ID
join profissao in contexto.Profissao on p.IDProfissao equals profissao.ID
join cargos in contexto.Cargo on p.IDCargo equals cargos.ID
join nacionalidade in contexto.Nacionalidade on p.IDNacionalidade equals nacionalidade.ID
join estadoCivil in contexto.EstadoCivil on p.IDEstadoCivil equals estadoCivil.ID
select new
{
ID = p.ID,
RazaoSocial_Nome = p.RazaoSocial_Nome,
NomeFantasia = p.NomeFantasia,
CNPJ_CPF = p.CNPJ_CPF,
IE_RG = p.IE_RG,
DataNascimento = p.DataNascimento,
Sexo = p.Sexo,
IDPais = p.IDPais,
NomePais = pais.Nome,
IDProfissao = p.IDProfissao,
NomeProfissao = profissao.Nome,
IDCargo = p.IDCargo,
NomeCargo = cargos.Nome,
IDNacionalidade = p.IDNacionalidade,
NomeNacionalidade = nacionalidade.Nome,
IDEstadoCivil = p.IDEstadoCivil,
NomeEstadoCivil = estadoCivil.Nome,
Telefones = contexto.Telefone.Where(t => t.IDPFPJ == p.ID).ToList(),
}).AsEnumerable().Select(x => new PFPJ
{
ID = x.ID,
RazaoSocial_Nome = x.RazaoSocial_Nome,
NomeFantasia = x.NomeFantasia,
CNPJ_CPF = x.CNPJ_CPF,
IE_RG = x.IE_RG,
DataNascimento = x.DataNascimento,
Sexo = x.Sexo,
IDPais = x.IDPais,
NomePais = x.NomePais,
IDProfissao = x.IDProfissao,
NomeProfissao = x.NomeProfissao,
IDCargo = x.IDCargo,
NomeCargo = x.NomeCargo,
IDNacionalidade = x.IDNacionalidade,
NomeNacionalidade = x.NomeNacionalidade,
IDEstadoCivil = x.IDEstadoCivil,
NomeEstadoCivil = x.NomeEstadoCivil,
Telefones = x.Telefones
}).ToList();
Some joins are already correct. What I need now is to fill in the Phone types for each phone in the List, in this same query, how can I do it?