none
Entity Framework RRS feed

  • Pergunta

  • Ola pessoal, eu tenho uma tabela CENARIO

    Outra tabela DISPOSITIVO 

    E Uma tabela Associativa DISPOSITIVO_CENARIO

    Os meus cenários e dispositivos já estão pre cadastrados na minha base, o que eu quero apenas e associá-los, para isso eu fiz o mapeamento nas 2 classes.

             

     public class CenarioMap : EntityTypeConfiguration<Cenario>
        {
            public CenarioMap()
            {

                ToTable("CENARIO");

                HasKey(e => e.Chave)
                    .Property(e => e.Chave)
                    .HasColumnName("CD_CENARIO")
                    .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

                Property(e => e.Descricao).HasColumnName("DS_DESCRICAO").IsRequired();
                Property(e => e.DataCadastro).HasColumnName("DT_CADASTRO");
                Property(e => e.DataAlteracao).HasColumnName("DT_ALTERACAO");
                Property(e => e.DataExclusao).HasColumnName("DT_EXCLUSAO");
                Property(e => e.Desativado).HasColumnName("IS_DESATIVADO");

                HasMany(e => e.Dispositivo)
                  .WithMany(e => e.Cenario)
                  .Map(e =>
                  {
                      e.ToTable("DISPOSITIVO_CENARIO");
                      e.MapLeftKey("CD_DISPOSITIVO");
                      e.MapRightKey("CD_CENARIO");
                  });
            }

        }

     public class DispositivoMap : EntityTypeConfiguration<Dispositivo>
        {
            public DispositivoMap() {

                ToTable("DISPOSITIVO");

                HasKey(e => e.Chave)
                    .Property(e => e.Chave)
                    .HasColumnName("CD_DISPOSITIVO")
                    .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

                Property(e => e.Descricao).HasColumnName("DS_DESCRICAO").IsRequired();
                Property(e => e.DataCadastro).HasColumnName("DT_CADASTRO");
                Property(e => e.DataAlteracao).HasColumnName("DT_ALTERACAO");
                Property(e => e.DataExclusao).HasColumnName("DT_EXCLUSAO");
                Property(e => e.Desativado).HasColumnName("IS_DESATIVADO");
                Property(e => e.Status).HasColumnName("STATUS");
                Property(e => e.Favorito).HasColumnName("FAVORITO");
     
                HasRequired(e => e.Ambiente).WithMany().Map(e => e.MapKey("CD_AMBIENTE"));
                HasRequired(e => e.Porta).WithMany().Map(e => e.MapKey("CD_PORTA"));


                HasMany(e => e.Cenario)
                  .WithMany(e => e.Dispositivo)
                  .Map(e =>
                  {
                      e.ToTable("DISPOSITIVO_CENARIO");
                      e.MapLeftKey("CD_CENARIO");
                      e.MapRightKey("CD_DISPOSITIVO");
                  });
            }

     Bem o que esta acontecendo é o seguinte, sempre que vou Inserir os registros nessa tabela associativa, Ele cadastra TAMBÉM NA TABELA CENÁRIO, assim duplicando os registros!   

    Eu quero apenas associar! 

     


    0

    sexta-feira, 9 de maio de 2014 15:58