none
Mapeamento de tabela com campos de Chave primária/estrangeira - C# - EF Core - Migrations RRS feed

  • Pergunta

  • Olá Pessoal. Estou tendo problemas ao mapear uma tabela com o Migrations que possui 3 campos: TabelaId, NomeCampo e SequenciaId.

    Preciso fazer que o campo TabelaId seja definido como chave primária e estrangeira(pois ele se relaciona com uma tabela que não citei) e o campo NomeCampo seja definido como chave primária.... Na vdd, esses dois campos são constituídos por uma chave composta.

    Por mais que eu especifique que campo TabelaId deva ser uma chave primária, o Migrations não obedece e apenas aplica uma chave estrangeira... Preciso fazer com que ele aplique tb a chave primária... O que estou fazendo de errado ou deixando de fazer em meu código para que ele não obedeça?

     public void TabelaSequenciaMapping(ModelBuilder modelBuilder)
            {
                modelBuilder.Entity<TabelaSequencia>()
                    .ToTable("tblTabelaSequencia");
    
                modelBuilder.Entity<TabelaSequencia>()
                    .HasKey(t => t.TabelaId);
    
                modelBuilder.Entity<TabelaSequencia>()
                    .HasKey(t => t.NomeCampo);
    
                modelBuilder.Entity<TabelaSequencia>()
                    .Property(t => t.TabelaId).ValueGeneratedNever();
    
                modelBuilder.Entity<TabelaSequencia>()
                   .Property(t => t.NomeCampo)
                   .HasColumnName("NomeCampo")
                   .HasColumnType("Varchar(50)")
                   .HasMaxLength(50)
                   .IsRequired();
    
                modelBuilder.Entity<TabelaSequencia>()
                   .Property(t => t.SequenciaId)
                   .HasColumnName("SequenciaId")
                   .IsRequired();
    
                modelBuilder.Entity<TabelaSequencia>()
                    .HasOne(t => t.Tabela)
                    .WithMany(t => t.TabelasSequencias)
                    .HasForeignKey(t => t.TabelaId)
                    .IsRequired();
            }

    domingo, 7 de maio de 2017 18:57

Respostas

  • Tente assim:

                modelBuilder.Entity<TabelaSequencia>()
                    .HasKey(t => new { t.TabelaId, t.NomeCampo });
    


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    • Marcado como Resposta JR-Master segunda-feira, 8 de maio de 2017 12:32
    segunda-feira, 8 de maio de 2017 11:00

Todas as Respostas

  • Tente assim:

                modelBuilder.Entity<TabelaSequencia>()
                    .HasKey(t => new { t.TabelaId, t.NomeCampo });
    


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    • Marcado como Resposta JR-Master segunda-feira, 8 de maio de 2017 12:32
    segunda-feira, 8 de maio de 2017 11:00
  • Fala grande Juliano.

    Vc me salvou mais uma vez companheiro! Deu certo!

    Obrigado e um forte abraço!

    segunda-feira, 8 de maio de 2017 12:32