none
Conflito entre PK e FK no SQL Server Express 2017 RRS feed

  • Pergunta

  • Estou enfrentando um problema de conflito de Chave Primária e Chave Estrangeira no SQL Server 2017 Express. Estou usando ASP.NET com Entity Framework Code First (Migrations). O problema é que quando vou adicionar um novo Cliente que é uma Pessoa não adiciona. O Entity Framework até cria as tabelas com o relacionamento, coloca chave primária nas duas tabelas, coloca também o ClienteId como FK na tabela Cliente, porém não insere no banco.

    Erro ocorrido:

    SqlException: A instrução INSERT conflitou com a restrição do FOREIGN KEY "FK_Cliente_Pessoa". O conflito ocorreu no banco de dados "TesteTecnicoDB", tabela "dbo.Pessoa", column 'PessoaId'.
    A instrução foi finalizada.



    Classe Cliente:

        public class Cliente
        {
            [Key]
            [ForeignKey("Pessoa")]
            public int ClienteId { get; set; }
            public virtual Pessoa Pessoa { get; set; }
    
            public Cliente()
            {
                Pessoa pessoa = new Pessoa();
                ClienteId = pessoa.PessoaId;
            }
        }



    Classe Cliente Configuration:

        public class ClienteConfiguration : EntityTypeConfiguration<Cliente>
        {
            public ClienteConfiguration()
            {
                HasKey(c => c.ClienteId);
            }
        }




    Classe Pessoa:

        public class Pessoa
        {
            public int PessoaId { get; set; }
            public TipoPessoa TipoPessoa { get; set; }
            
            public virtual Cliente Cliente { get; set; }
            public virtual PessoaFisica PessoaFisica { get; set; }
            public virtual PessoaJuridica PessoaJuridica { get; set; }
            public IEnumerable<Endereco> Enderecos { get; set; }
        }
        




    Classe Pessoa Configuration:

        public class PessoaConfiguration : EntityTypeConfiguration<Pessoa>
        {
            public PessoaConfiguration()
            {
                HasKey(p => p.PessoaId);
            }
        }


    Tabelas no Banco:

    Alguém sabe como pode ser resolvido este problema?

    • Movido welington jr domingo, 4 de novembro de 2018 12:32 forum mais especifico
    domingo, 28 de outubro de 2018 23:44

Todas as Respostas

  • Boa tarde, AlexA3Solutions. Tudo bem?

    Obrigado por usar o fórum MSDN.

    Conseguiu algum avanço no teu caso? Se ainda não, o que falta?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 1 de novembro de 2018 19:51