【发布时间】:2021-09-17 18:30:33
【问题描述】:
我在尝试从数据库中删除“empresas”时遇到此错误
MySqlException: 无法删除或更新父行:外键约束失败 (
utproject1.qsa, CONSTRAINTFK_Qsa_Empresa_EmpresaCnpjFOREIGN KEY (EmpresaCnpj) REFERENCESempresa(Cnpj))
DbUpdateException:更新条目时出错。有关详细信息,请参阅内部异常。
在控制器中
// POST: Empresas/Delete/cnpj
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(Empresa emp)
{
string id = emp.Cnpj;
id = RemovePontuacao.RmPontCnpj(id);
var empresa = await _context.Empresa.FindAsync(id);
if (empresa == null)
{
TempData["msg"] = "Este CNPJ não está cadastrado";
return RedirectToAction("Delete");
}
_context.Empresa.Remove(empresa);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
private bool EmpresaExists(string id)
{
return _context.Empresa.Any(e => e.Cnpj == id);
}
企业模式
public class Empresa
{
[Key]
[Display(Name = "CNPJ")]
[Required(ErrorMessage = "Preencha este campo.")]
[RegularExpression("[0-9]{2}\\.?[0-9]{3}\\.?[0-9]{3}\\/?[0-9]{4}\\-?[0-9]{2}", ErrorMessage = "Digite um CNPJ válido")]
public string Cnpj { get; set; }
[Display(Name ="Nome")]
[Required(ErrorMessage ="Preencha este campo")]
public string Nome { get; set; }
public string DataSituacao { get; set; }
public string MotivoSituacao { get; set; }
public string Tipo { get; set; }
public string Telefone { get; set; }
public List<Qsa> Qsa { get; set; }
Qsa
public class Qsa
{
[Key]
public string Nome { get; set; }
public string Qual { get; set; }
}
我尝试了很多方法来修复它,但我没有得到它
数据库上下文
public class MyDbContext : DbContext
{
public MyDbContext(DbContextOptions<MyDbContext> options) : base(options)
{
Database.EnsureCreated();
}
public DbSet<Empresa> Empresa { get; set; }
//public DbSet<Qsa> Qsa { get; set; }
//public DbSet<Atividade> Atividade { get; set; }
//protected override void OnModelCreating(ModelBuilder modelBuilder)
//{
// foreach (var foreignKey in modelBuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()))
// {
// foreignKey.DeleteBehavior = DeleteBehavior.Restrict;
// }
// base.OnModelCreating(modelBuilder);
//}
}
【问题讨论】:
标签: c# mysql .net database .net-core