none
Mapeamento das propriedades de Navegação das classes POCO - Entity Framework RRS feed

  • Pergunta

  • Olá Pessoal.

    Estou começando a me aventurar com o Entity Framework e estou com uma dúvida (desculpem pela simplicidade da mesma) sobre fazer o relacionamento  entre duas classes POCO: Pessoa e PessoaTipo.

     

        public class PessoaTipoModel
        {
            public int PessoaTipoId { get; set; }
            public string Descricao { get; set; }       
        }
       public class PessoaModel
        {
            public int PessoaId { get; set; }
            public DateTime DataInclusao { get; set; }
        }

    Alguém poderia me ensinar como relacioná-las através de propriedades de navegação?

    Grande Abraço!!!

    sexta-feira, 14 de outubro de 2016 00:32

Respostas

  • Olá Jalber,

    Fazer esse relacionamento através do método Code First (pelas classes), ficaria dessa forma:

    public class PessoaTipo
    {
        public int PessoaTipoId { get; set; }
        public string Descricao { get; set; }       
    }
    
    public class Pessoa
    {
        public int PessoaId { get; set; }
        public int PessoaTipoId { get; set; }
        public DateTime DataInclusao { get; set; }
    
        [ForeignKey("PessoaTipoId")]
        public virtual PessoaTipo PessoaTipo { get; set; }       
    }

    Criei uma propriedade PessoaTipoId na classe Pessoa para que ela seja a chave estrangeira da classe PessoaTipo.

    Espero ter ajudado!

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    • Marcado como Resposta Jalber Romano sexta-feira, 14 de outubro de 2016 12:17
    sexta-feira, 14 de outubro de 2016 03:00

Todas as Respostas

  • Olá Jalber,

    Fazer esse relacionamento através do método Code First (pelas classes), ficaria dessa forma:

    public class PessoaTipo
    {
        public int PessoaTipoId { get; set; }
        public string Descricao { get; set; }       
    }
    
    public class Pessoa
    {
        public int PessoaId { get; set; }
        public int PessoaTipoId { get; set; }
        public DateTime DataInclusao { get; set; }
    
        [ForeignKey("PessoaTipoId")]
        public virtual PessoaTipo PessoaTipo { get; set; }       
    }

    Criei uma propriedade PessoaTipoId na classe Pessoa para que ela seja a chave estrangeira da classe PessoaTipo.

    Espero ter ajudado!

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    • Marcado como Resposta Jalber Romano sexta-feira, 14 de outubro de 2016 12:17
    sexta-feira, 14 de outubro de 2016 03:00
  • Obrigado pela resposta André.

    Neste caso uma pessoa só pode conter um tipo (ex: Pessoa Física ou Jurídica)... Mas e na classe PessoaTipo, não vai nenhuma propriedade de navegação não?

    sexta-feira, 14 de outubro de 2016 08:41
  • Acabei esquecendo, sim você pode adicionar na classe PessoaTipo:

    public virtual ICollection<Pessoa> Pessoas { get; set; }


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    sexta-feira, 14 de outubro de 2016 10:56
  • Rapaz, esses relacionamentos dão um nó na cabeça do sujeito kkkkkkk.

    Obrigado pela valiosa ajuda companheiro!!!!

    Que Deus te abençoe sempre!

    sexta-feira, 14 de outubro de 2016 12:16