1
resposta

Duvida relacionamento projeto .NET

ja tentei de tudo, nao consigo encontrar o erro, segue abaixo meu relacionamento e a exeçao que a aplicaçao esta lançando, sera que podiam me dar uma luz? obs: antes de eu subir para o github funcionava, agora que eu baixei, começou a lançar essa exeçao

SqlException: The MERGE statement conflicted with the FOREIGN KEY constraint "FK_Produto_Categoria_CategoriaId". The conflict occurred in database "CasaDoCodigo", table "dbo.Categoria", column 'Id'.

    public class Categoria : BaseModel
    {
        public Categoria()
        {

        }

        [Required]
        public string Nome { get; private set; }

        public Categoria(string nome)
        {
            this.Nome = nome;
        }
    }

    public class Produto : BaseModel
    {
        public Produto()
        {

        }

        [Required]
        public string Codigo { get; private set; }
        [Required]
        public string Nome { get; private set; }
        [Required]
        public decimal Preco { get; private set; }
        [Required]
        public Categoria Categoria { get; private set; }


        public Produto(string codigo, string nome, decimal preco, Categoria categoria)
        {
            this.Categoria = categoria;
            this.Codigo = codigo;
            this.Nome = nome;
            this.Preco = preco;
        }
    }
using CasaDoCodigo.Models;
using JetBrains.Annotations;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace CasaDoCodigo
{
    public class ApplicationContext : DbContext
    {
        public ApplicationContext(DbContextOptions options) : base(options)
        {
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            modelBuilder.Entity<Categoria>().HasKey(t => t.Id);

            modelBuilder.Entity<Produto>().HasKey(t => t.Id);
            modelBuilder.Entity<Produto>().HasOne(t => t.Categoria);

            modelBuilder.Entity<Pedido>().HasKey(t => t.Id);
            modelBuilder.Entity<Pedido>().HasMany(t => t.Itens).WithOne(t => t.Pedido);
            modelBuilder.Entity<Pedido>().HasOne(t => t.Cadastro).WithOne(t => t.Pedido).IsRequired();

            modelBuilder.Entity<ItemPedido>().HasKey(t => t.Id);
            modelBuilder.Entity<ItemPedido>().HasOne(t => t.Pedido);
            modelBuilder.Entity<ItemPedido>().HasOne(t => t.Produto);

            modelBuilder.Entity<Cadastro>().HasKey(t => t.Id);
            modelBuilder.Entity<Cadastro>().HasOne(t => t.Pedido);
        }
    }
}
1 resposta

A questão aí está relacionada a herança desse BaseModel que deve ter a coluna Id, tenta gerar o banco sem isso que resolve.