I'm working on an application with asp .net-core + entity -framework-core and with mapping and configuration via fluent-api .
When I insert into the database I get the error that IDENTITY_INSERT
is set to OFF
.
Ihavetheentities(whicharerelated):
- Material;
- Packaging;
- MaterialGroup;
- MeasurementUnit;
- AnvisaRegistry;
CodeofEntities
publicclassMaterial{publicMaterial(){Registros=newList<RegistroANVISA>();}publicintMaterialId{get;set;}publicstringDescricao{get;set;}publicintNumeroMaxProcessamento{get;set;}publicstringImagem{get;set;}publicboolAtivo{get;set;}[JsonIgnore]publicintGrupoMaterialId{get;set;}[JsonIgnore]publicvirtualGrupoMaterialGrupoMaterial{get;set;}[JsonIgnore]publicintUnidadeMedidaId{get;set;}[JsonIgnore]publicvirtualUnidadeMedidaUnidadeMedida{get;set;}[JsonIgnore]publicintEmbalagemId{get;set;}[JsonIgnore]publicvirtualEmbalagemEmbalagem{get;set;}[JsonIgnore]publicvirtualIEnumerable<RegistroANVISA>Registros{get;set;}}publicclassEmbalagem{publicEmbalagem(){Materiais=newList<Material>();}publicintEmbalagemId{get;set;}publicstringDescricao{get;set;}publicboolAtivo{get;set;}publicvirtualICollection<Material>Materiais{get;set;}}publicclassGrupoMaterial{publicGrupoMaterial(){Materiais=newList<Material>();}publicintGrupoMaterialId{get;set;}publicstringDescricao{get;set;}publicstringObservacao{get;set;}publicboolAtivo{get;set;}publicvirtualICollection<Material>Materiais{get;set;}}publicclassUnidadeMedida{publicUnidadeMedida(){Materiais=newList<Material>();}publicintUnidadeMedidaId{get;set;}publicstringDescricao{get;set;}publicstringSigla{get;set;}publicboolAtivo{get;set;}publicvirtualICollection<Material>Materiais{get;set;}}publicclassRegistroANVISA{publicRegistroANVISA(){}publicintRegistroId{get;set;}publicintNumeroRegistro{get;set;}publicstringMarca{get;set;}publicboolAtivo{get;set;}publicintMaterialId{get;set;}publicvirtualMaterialMaterial{get;set;}}
FluentApiConfiguration
publicvoidConfigure(EntityTypeBuilder<Material>builder){builder.ToTable("Metrial");
builder.Property(m => m.Descricao)
.HasColumnType("varchar(150)")
.IsRequired();
builder.HasKey(m => m.MaterialId);
builder.Property(m => m.EmbalagemId)
.ValueGeneratedOnAddOrUpdate();
builder.Property(m => m.GrupoMaterialId)
.ValueGeneratedOnAddOrUpdate();
builder.Property(m => m.UnidadeMedidaId)
.ValueGeneratedOnAddOrUpdate();
//Define relacionamento um-para-muito
builder.HasOne(m => m.GrupoMaterial)
.WithMany(m => m.Materiais)
// .HasForeignKey(m=> m.GrupoMaterial.GrupoMaterialId)
.OnDelete(DeleteBehavior.Restrict);
//Define relacionamento um-para-muito
builder.HasOne(m => m.Embalagem)
.WithMany(m => m.Materiais)
.OnDelete(DeleteBehavior.Restrict);
//Define relacionamento um-para-muito
builder.HasOne(m => m.UnidadeMedida)
.WithMany(m => m.Materiais)
.OnDelete(DeleteBehavior.Restrict);
//Define relacionamento um-pra-muitos (um material com muitos registros)
builder.HasMany(m => m.Registros)
.WithOne(m => m.Material)
.OnDelete(DeleteBehavior.Restrict);
}
What am I doing wrong?