IDENTITY INSERT is set to OFF-Entity Framework Core
I am working on an application with ASP. net-core + entity-framework-core and with mapping and configuration via fluent-api .
When I insert into the bank I get the error that IDENTITY_INSERT
is set to OFF
.
I have the entities (which are related):
- Material;
- packaging;
- Material Group;
- Unitmeasure;
- record Anvisa;
Entity code
public class Material
{
public Material()
{
Registros = new List<RegistroANVISA>();
}
public int MaterialId { get; set; }
public string Descricao { get; set; }
public int NumeroMaxProcessamento { get; set; }
public string Imagem { get; set; }
public bool Ativo { get; set; }
[JsonIgnore]
public int GrupoMaterialId { get; set; }
[JsonIgnore]
public virtual GrupoMaterial GrupoMaterial { get; set; }
[JsonIgnore]
public int UnidadeMedidaId { get; set; }
[JsonIgnore]
public virtual UnidadeMedida UnidadeMedida { get; set; }
[JsonIgnore]
public int EmbalagemId { get; set; }
[JsonIgnore]
public virtual Embalagem Embalagem { get; set; }
[JsonIgnore]
public virtual IEnumerable<RegistroANVISA> Registros { get; set; }
}
public class Embalagem
{
public Embalagem()
{
Materiais = new List<Material>();
}
public int EmbalagemId { get; set; }
public string Descricao { get; set; }
public bool Ativo { get; set; }
public virtual ICollection<Material> Materiais { get; set; }
}
public class GrupoMaterial
{
public GrupoMaterial()
{
Materiais = new List<Material>();
}
public int GrupoMaterialId { get; set; }
public string Descricao { get; set; }
public string Observacao { get; set; }
public bool Ativo { get; set; }
public virtual ICollection<Material> Materiais { get; set; }
}
public class UnidadeMedida
{
public UnidadeMedida()
{
Materiais = new List<Material>();
}
public int UnidadeMedidaId { get; set; }
public string Descricao { get; set; }
public string Sigla { get; set; }
public bool Ativo { get; set; }
public virtual ICollection<Material> Materiais { get; set; }
}
public class RegistroANVISA
{
public RegistroANVISA()
{
}
public int RegistroId { get; set; }
public int NumeroRegistro { get; set; }
public string Marca { get; set; }
public bool Ativo { get; set; }
public int MaterialId { get; set; }
public virtual Material Material { get; set; }
}
Fluent Api configuration
public void Configure(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?
0
Author: Diego Rafael Souza, 2018-08-16