如何解决'在表'Table'上引入FOREIGN KEY约束'FK'可能导致循环或多个级联路径?

问题描述

我在 EF Core 5.0 中遇到迁移问题:

在上引入 FOREIGN KEY 约束“FK_Trades_Signals_SignalID” 表“交易”可能会导致循环或多个级联路径。指定开启 DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。

这是表格:

public class Signal
{
    public int SignalID { get; set; }
    public Type Type { get; set; }
    public int Buy { get; set; }
    public int Sell { get; set; }
    public int Neutral { get; set; }
    [required]
    public int CoinID { get; set; }
    public virtual Coin Coin { get; set; }
    public int? TradeID { get; set; }
    public Trade Trade { get; set; }
}

public class Trade
{
    public int TradeID { get; set; }
    [required]
    public int CoinID { get; set; }

    public virtual Coin Coin { get; set; }
    public DateTime TradeDate { get; set; }
    [Column(TypeName = "decimal(16,8)")]
    public decimal Price { get; set; }
    [Column(TypeName = "decimal(16,8)")]
    public decimal Amount { get; set; }
    public TradeStatus Status { get; set; }
    [ForeignKey("Signal")]
    public int? SignalID { get; set; }
    public virtual Signal Signal { get; set; }
    [Column(TypeName = "decimal(8,2)")]
    public decimal ProfitLoss { get; set; }
}

我尝试了很多东西,但仍然出现错误

我尝试了同样的错误

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Trade>().HasOne<Signal>(s => s.Signal).WithOne(t => t.Trade).OnDelete(DeleteBehavior.NoAction);
}

请帮忙。

解决方法

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

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

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