引入FOREIGN KEY约束可能会导致循环或多个级联路径

普拉卡什·乔希(Prakash Joshi)

我的MVC项目中有以下内容(代码优先方法),我想知道出现以下错误的原因是什么

在表“ VendorDetails”上引入FOREIGN KEY约束“ FK_dbo.VendorDetails_dbo.States_StateID”可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。无法创建约束。请参阅先前的错误。

我只是想知道哪些表正在获取多个级联路径,任何图都将有效,并且我应该使用流利的API编写如下内容: modelBuilder.Entity<...>() .HasRequired(...) .WithMany(...) .HasForeignKey(...) .WillCascadeOnDelete(false);

public class VendorDetails
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int VendorID { get; set; }        
    [MaxLength(60)]
    public string VendorName { get; set; }        

    public int VendorTypeID { get; set; }
    public int CountryID { get; set; }
    public int StateID { get; set; }        

    [NotMapped]
    public string CountryName { get; set; }
    [NotMapped]
    public string StateName { get; set; }
    [NotMapped]
    public string VendorTypeName { get; set; }

    public virtual Country Country { get; set; }
    public virtual State State { get; set; }
    public virtual VendorType VendorType { get; set; }
}

public class VendorType
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int VendorTypeID { get; set; }                

    public string VendorTypeName { get; set; }

    public virtual ICollection<VendorDetails> Vendors { get; set; }
 }


public class Country
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int CountryID { get; set; }
    public string CountryName { get; set; }

    public virtual ICollection<State> States { get; set; }
}

public class State
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int StateID { get; set; }
    public string StateName { get; set; }

    public int CountryID { get; set; }
    public virtual Country Country { get; set; }
}
理查德

之所以会这样,是因为“国家/地区”具有指向“州”的链接,而“ VendorDetails”具有指向“国家/地区”和“州”的链接。这在VendorDetails和州之间提供了多种路径-一种通过国家/地区,另一种是直接的。

我将禁用从VendorDetails链接到状态的级联删除:

modelBuilder
    .Entity<VendorDetails>()
        .HasOptional(e => e.State)
        .WithMany()
        .WillCascadeOnDelete(false);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在表 'Y' 上引入 FOREIGN KEY 约束 'X' 可能会导致循环或多个级联路径

引入FOREIGN KEY约束可能会导致循环或多个级联路径-为什么?

SQL Server 引入 FOREIGN KEY 约束可能会导致循环或多个级联路径

ef core 2 - 在表“Y”上引入 FOREIGN KEY 约束“X”可能会导致循环或多个级联路径

引入FOREIGN KEY约束可能会导致循环或多个级联路径。指定删除时不执行任何操作

如何防止错误:在表上引入FOREIGN KEY约束可能会导致循环或多个级联路径

Entity Framework Core 5 - 在表上引入 FOREIGN KEY 约束可能会导致循环或多个级联路径

SQL错误:引入FOREIGN KEY约束可能会导致循环或多个级联路径。实体框架核心

在表 'ReservedSeats' 上引入 FOREIGN KEY 约束 'FK_ReservedSeats_Seats_SeatId' 可能会导致循环或多个级联路径

在表“ Employer”上引入FOREIGN KEY约束“ FK__Employer__postal__59FA5E80”可能会导致循环或多个级联路径

在表上引入FOREIGN KEY约束可能会导致循环或多个级联路径,即使在完全删除受影响的字段之后也是如此

可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束

FOREIGN KEY可能会导致循环或多个级联路径异常

实体框架核心:如何解决?引入外键约束可能会导致循环或多个级联路径

由于级联删除而导致的“ FOREIGN KEY约束引入”

FK约束可能会导致循环或多个级联路径

外键约束可能会导致循环或多个级联路径?

SQL可能会导致循环或多个级联路径

无法执行DbCommand引入的FOREIGN KEY约束

引入FOREIGN KEY约束-数据库设置

外键约束可能会导致循环或多个级联路径,但只能在一个项目中

实体框架-引入外键约束可能会导致周期

具有相同必需属性类型的EF Core TPH实体导致“引入FOREIGN KEY约束”异常

EF Core DeleteBehavior.Cascade可能会导致循环或多个级联路径

实体框架代码的第一个外键可能会导致循环或多个级联路径

是否引入一个中间列表可能会导致性能开销?

实体框架级联删除-FOREIGN KEY约束

这些约束如何导致循环或多个级联路径?

EF Core-可能导致循环或多个级联路径