Boa tarde,
Estou executando alguns testes e tenho o seguinte cenário:
Um "usuário" possui um perfil "Administrador" ou "Funcionário" e está alocado a uma secretaria "Tecnologia" ou "Saúde".
Com isso, tentei fazer o mapeamento assim:
-> Referente ao Usuário
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace sistema_login.Models
{
//classe para mapear a tabela referente no banco
[Table("Usuario")]
public class Usuario
{
[Key]
public int Id { get; set; }
[Required]
public string Nome { get; set; }
[Required]
public string login { get; set; }
[Required]
public string senha { get; set; }
[ForeignKey("perfilId")]
public virtual Perfil perfil {get; set;}
[ForeignKey("secretariaId")]
public virtual Secretaria secretaria {get; set;}
}
}
-> Referente ao Perfil:
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace sistema_login.Models
{
[Table("Perfil")]
public class Perfil
{
[Key]
public int Id { get; set; }
public string Descricao { get; set; }
}
}
-> Referente a Secretaria:
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace sistema_login.Models
{
[Table("Secretaria")]
public class Secretaria
{
[Key]
public int Id {get; set;}
public string Descricao { get; set; }
}
}
Junto a isso, segue meu código referente ao Context:
using Microsoft.EntityFrameworkCore;
namespace sistema_login.Models
{
//classe criada para manipular o contexto da tabela Usuario
public class UsuarioContext : DbContext
{
public UsuarioContext(DbContextOptions<UsuarioContext> options) : base(options){
}
public DbSet<Usuario> Usuarios {get; set;}
public DbSet<Perfil> Perfis {get; set;}
public DbSet<Secretaria> Secretarias { get; set; }
}
}
Como pode perceber é algo simples. Quando eu executar o POST na API, quero inserir um novo usuário com o id do perfil e secretaria. As descrições referentes ao perfil e secretaria já vão estar inseridos no banco. Só vou criar formulário cadastral referente ao Usuário.
Mas quando executo o POST, a API me força a cadastrar junto um Perfil e uma Secretaria. E se eu executo um GET está me retornando perfil e secretaria como nulo.
Se achar necessário posso postar o código referente ao Controller.
Será que meu erro está nesse mapeamento acima?
Obrigado de qualquer maneira!!