Lookup de classe

23/07/2013

0

Boa noite,

Tenho uma duvida bem básica.

Contando que eu tenha duas classes Profissao e Cliente sendo que CODPROFISSAO em Cliente é uma FK conforme descrito abaixo, pergunto: Como faço para ter o DSCPROFISSAO no meu objeto Cliente quando eu fizer:

Cliente cli = new Cliente();
cli = context.Cliente.Where(c=>c.codcliente == 1).tofirstordefault();

No objeto cli eu preciso ter o nome da descrição da profissao do cliente. No Delphi é moleza fazer isto, mas aqui, to apanhando igual cachorro sem dono.

Já tentei no Link, com lambda, sem lambda, já estudei sobre tipos anonymus mas parece mais V de Vingança do que OO.

Creio que a forma mais simples seria esta mas não consigo usar o get; set; da forma correta porque get;set; é tudo o que sei fazer.

Alguém pode me auxiliar?

public class Profissao
{
[Key, Column(Order = 0), DatabaseGenerated(DatabaseGeneratedOption.None)]
public int CodEmpresa { get; set; }

[ForeignKey("CodEmpresa")]
public virtual Empresa Empresa { get; set; }

[Key, Column(Order = 1), DatabaseGenerated(DatabaseGeneratedOption.None)]
public int CodProfissao { get; set; }

[ForeignKey("CodProfissao")]
public virtual Param_Profissao Param_Profissao { get; set; }

[Required(ErrorMessage = "O campo Descrição é obrigatório", AllowEmptyStrings = false)]
[StringLength(30, MinimumLength = 4, ErrorMessage = "A Descrição deve estar entre 4 e 30 caracteres.")]
public string DscProfissao { get; set; }

public bool IdtAtivo { get; set; }

public virtual ICollection<Cliente> Clientes { get; set; }

public Profissao()
{
if (IdtAtivo == null)
IdtAtivo = true ;
}
}


/// Classe Cliente
public class Cliente
{
[Key, Column(Order = 0), DatabaseGenerated(DatabaseGeneratedOption.None)]
public int CodEmpresa { get; set; }

[ForeignKey("CodEmpresa")]
public virtual Empresa Empresa { get; set; }

[Key, Column(Order=1)]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int CodCliente { get; set; }

public int? CodProfissao { get; set; }

[ForeignKey("CodEmpresa, CodProfissao")]
public virtual Profissao Profissao { get; set; }

public string DscProfissao { get { return Profissao.DscProfissao; } } // Isto não funciona

[Required(ErrorMessage = "O campo Razão Social é obrigatório", AllowEmptyStrings = false)]
[MaxLength(100, ErrorMessage = "Tamanho máximo para o campo Razão Social é de 100 caracteres.")]
public string DscRazaoSocial { get; set; }
}

public Cliente()
{
if (Profissao == null)
Profissao = new Profissao();
}
Flávio Barbosa

Flávio Barbosa

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar