Array
(
)

Retorno da List

Eduardo Silva
   - 17 set 2014

Boa tarde galera, como capturar o retorno dessa lista?
Como a lista é do tipo Pessoa, não tenho acesso do controle, a os dados: "funcao = f.descricao" e "empresa = e.razao_social".

public List<Pessoa> Listar()
{
try
{
using (Conexao Con = new Conexao())
{
return (from p in Con.Pessoa
join f in Con.Funcao on p.Funcao_codigo equals f.codigo
join e in Con.Empresa on p.Empresa_codigo equals e.codigo
select new
{
matricula = p.matricula,
foto = p.foto,
nome = p.nome,
funcao = f.descricao,
empresa = e.razao_social
});
//return Con.Pessoa.OrderByDescending(d => d.idPessoa).ToList();
}
}
catch
{
throw;
}
}

Joel Rodrigues
   - 17 set 2014

Neste caso, na classe Pessoa você precisa de uma propriedade Funcao e uma Empresa.

0
|
0

Eduardo Silva
   - 17 set 2014

Então na classe pessoa eu tenho o mapeamento das tabelas

[Table("Pessoa")]
public class Pessoa
{
[Key] //chave primaria
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Column("idPessoa")]
public int idPessoa { get; set; }

[Column("matricula")]
public int matricula { get; set; }

[Column("Funcao_codigo")]
public int Funcao_codigo { get; set; }

[Column("Empresa_codigo")]
public int Empresa_codigo { get; set; }
}}

Aonde eu tenho o ID da função e o código da empresa!

Eu teria que criar uma outra classe? com os valores que eu preciso?

0
|
0

Joel Rodrigues
   - 18 set 2014

É, eu vejo duas opções para você.
A primeira é adicionar as propriedades Funcao e Empresa, desses tipos, como eu citei antes.
A segunda é criar um View Model para modelar essa classe Pessoa já contendo a descrição da função e da empresa, visto que o objetivo de ter essas descrições no objeto é apresentar esses dados para o usuário.
Veja este post do MVP em ASP.NET Eduardo Pires sobre View Models, creio que vai lhe ajudar: ASP.Net MVC – View Model Pattern – Quando e como utilizar?

0
|
0

Eduardo Silva
   - 18 set 2014

Vlw Joel,

Eu fiz dessa forma e funcionou de boa, só não sei se é a melhor alternativa, que que eu chamo o busca função e o busca empresa!

De qualquer forma esta funcionando :)

pessoaEmpresaFuncao Model = new pessoaEmpresaFuncao();

Model.idPessoa = il.idPessoa;
Model.matricula = il.matricula;
Model.nome = il.nome;
Model.foto = il.foto;

Funcao f = c.buscaFuncao(il.Funcao_codigo);
if (f != null) {
Model.funcao = f.descricao;
}
else
{
Model.funcao = "Em branco";
}

Empresa e = c.buscaEmpresa(il.Empresa_codigo);
if (e != null)
{
Model.empresa = e.razao_social;
}
else
{
Model.empresa = "Em branco";

}
listaPessoas.Add(Model);

0
|
0