none
Relacionamento 1 para 1 com Entity Framework ? RRS feed

  • Pergunta

  • Estou tentando criar um relacionamento 1-para-1 com Entity Framework 6. No meu esquema tenho uma classe de Usuario e uma de Plano e o relacionamento seria 1 Usuario tem 1 Plano, porem, esse relacionamento é feito quando o Usuario paga o Plano que então faço o relacionamento. 

    Usei o `HasOptional<Plano>(u => u.plano)` para fazer o mapeamento do lado do Usuario, salvo as informações no banco de dados normalmente com o relacionamento, o problema é que quando faço uma busca o Plano não retorna junto com o Usuario e não sei pq isso acontece.

    Como resolver isso ?

       
     public class Usuario{
            public long id                  { get; set; }
            public Plano plano              { get; set; }
        
        public class Plano{
            public int id                   { get; set; }
        
        //mapeamento
        public class UsuarioMap : EntityTypeConfiguration<Usuario>{
            public UsuarioMap(){
                this.ToTable("Usuarios");
                this.HasKey<long>(u => u.id);
        
                this.HasOptional<Plano>(u => u.plano);



    • Editado FerPa1979 sexta-feira, 17 de janeiro de 2020 14:51 mudanca
    sexta-feira, 17 de janeiro de 2020 14:50

Todas as Respostas

  • Primeiro, utilize sempre o mesmo tipo, Int Int ou Long Long.

    Segundo, coloque uma chave [Key] na propriedade.

    Terceiro, veja o exemplo abaixo:

    return (from artigo in _db.Set<tb_artigos>()
                        join cadastro in _db.Set<tb_cadastro_forum>()
                           on artigo.Ch_cad equals cadastro.Ch_cad
                        where artigo.Status_Artigos != "I"
                        select new tb_cadastro_forum
                        {
                            Ch_cad = cadastro.Ch_cad,
                            No_cad = cadastro.No_cad,
                            Email_cad = cadastro.Email_cad,
                            Foto_cad = cadastro.Foto_cad
                        });


    Espero ter ajudado. Se ajudei, favor marcar no fórum falando que foi útil.

    Mauricio Junior - Comunidade www.ecode10.com

    quarta-feira, 20 de maio de 2020 20:31