My intention is to initialize a SubCategoria
, but it needs a Categoria
first (1: N). I wanted to know what implementation I would use for this relationship to work fine in the database? I'm using the Seed
method of EntityFramework.
Method Seed
protected override void Seed(Context context)
{
IList<Categoria> CategoriasInicialização = new List<Categoria>();
IList<UnidadeDeMedida> UndMedidasInicialização = new List<UnidadeDeMedida>();
IList<SubCategoria> SubCategoriaInicialização = new List<SubCategoria>();
#region Inicialização das SubCategorias
SubCategoriaInicialização.Add(new SubCategoria() { SubCategoriaNome = "Controlados" });
foreach (var subCategorias in SubCategoriaInicialização)
context.SubCategorias.Add(subCategorias);
#endregion
#region Inicialização das Categorias
CategoriasInicialização.Add(new Categoria() { CategoriaNome = "Medicamentos" });
CategoriasInicialização.Add(new Categoria() { CategoriaNome = "Generos Alimenticios" });
CategoriasInicialização.Add(new Categoria() { CategoriaNome = "Materiais de Construção" });
CategoriasInicialização.Add(new Categoria() { CategoriaNome = "Materiais Hospitalar" });
CategoriasInicialização.Add(new Categoria() { CategoriaNome = "Materiais Odontologico" });
foreach (var categorias in CategoriasInicialização)
context.Categorias.Add(categorias);
context.SaveChanges();
base.Seed(context);
}
Subcategory mapping class
public SubCategoriaConfig()
{
ToTable("SubCategoria");
HasKey(c => c.SubCategoriaId);
Property(x => x.SubCategoriaNome)
.IsRequired()
.HasMaxLength(60);
HasRequired(x => x.Categoria)
.WithMany(x => x.SubCategorias)
.Map(m => m.MapKey("CategoriaId"));
}