级联的多对多自引用

问题描述

所以我有一个简单的多对多关系,如下所示,并且我手动在外键部分添加了onUpdate: ReferantialAction.Cascade,并在我用简单的{{1 }}我可以成功更新我的实体。

SqlCommand

DbContext

public class Machine
{
    public string No { get; set; }
    public string Name { get; set; }

    public List<MachinePart> MachineParts { get; set; }
}

public class Part 
{
   public string No { get; set; }
   public string Name { get set; }
  
   public List<MachinePart> MachineParts { get; set; }
}

public class MachinePart
{
    public string MachineNo { get; set; }
    public Machine Machine { get; set; }

    public string PartNo { get; set; }
    public Part Part { get; set; }
}

迁移

builder.Entity<MachinePart>().HasKey(i => new { i.MachineNo,i.PartNo });

但是现在我必须创建一个多对多表自引用,它可以是级联关系,

migrationBuilder.AddForeignKey(
                name: "FK_MachineParts_Machines_MachineNo",table: "MachineParts",column: "MachineNo",principalTable: "Machines",principalColumn: "No",onUpdate: ReferentialAction.Cascade,onDelete: ReferentialAction.Cascade);

当我手动添加时 public class MachineRelation { public string MachineNo { get; set; } public Machine Machine { get; set; } public string ReferencedMachineNo { get; set; } public Machine ReferencedMachine { get; set; } } && onUpdate: ReferantialAction.Cascade

我得到级联异常=>
在表'AssemblyRevisions'上引入FOREIGN KEY约束'FK_AssemblyRevisions_Assemblies_RevisionedAssemblyNo'可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...