引入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; }
}
理查德

之所以会这样,是因为Country链接到State,而VendorDetails链接到Country和State。这提供了VendorDetails和州之间的多种路径-一种通过国家/地区,另一种直接。

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

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

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

实体框架,外键约束可能会导致循环或多个级联路径

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

C ++ 14中引入的哪些更改可能会破坏用C ++ 11编写的程序?

来自分类Dev

即使Foreign_keys为ON,FOREIGN KEY约束也会失败

来自分类Dev

与FOREIGN KEY约束冲突

来自分类Dev

与FOREIGN KEY约束冲突

来自分类Dev

在C ++开关盒中引入循环

来自分类Dev

循环中引入验证步骤

来自分类Dev

EF6代码优先-可能导致循环或多个级联路径

来自分类Dev

外键可能导致循环或多个级联路径实体框架核心

来自分类Dev

这段代码可能会导致无限循环吗?

来自分类Dev

Spray:将RequestContext引入作用域会导致超时

来自分类Dev

循环或多个级联路径

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

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

  12. 12

    实体框架,外键约束可能会导致循环或多个级联路径

  13. 13

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

  14. 14

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

  15. 15

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

  16. 16

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

  17. 17

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

  18. 18

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

  19. 19

    C ++ 14中引入的哪些更改可能会破坏用C ++ 11编写的程序?

  20. 20

    即使Foreign_keys为ON,FOREIGN KEY约束也会失败

  21. 21

    与FOREIGN KEY约束冲突

  22. 22

    与FOREIGN KEY约束冲突

  23. 23

    在C ++开关盒中引入循环

  24. 24

    循环中引入验证步骤

  25. 25

    EF6代码优先-可能导致循环或多个级联路径

  26. 26

    外键可能导致循环或多个级联路径实体框架核心

  27. 27

    这段代码可能会导致无限循环吗?

  28. 28

    Spray:将RequestContext引入作用域会导致超时

  29. 29

    循环或多个级联路径

热门标签

归档