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

你买

我首先在项目中使用实体代码。基本上我有3节课UsersBranchsUsersBranchs

Users包含UserIDName...

Branchs包含BranchID,,Location...和UserID,这是指分支的创建者,并且UsersBranchs只有两列BranchID和UserID定义了哪个用户在哪个分支中

问题是我收到此错误:

表“ UsersBranchs”上的“ FK_dbo.UsersBranchs_dbo.Users_UsersID”可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。

你能帮我吗?

更新
它的UsersBranchs类

[ForeignKey("UserID")]
public CoreUsers User { get; set; }
public Guid UsersID { get; set; }

[ForeignKey("BranchID")]
public Branchs Branch { get; set; }
public Guid BranchID { get; set; }


并将此行添加到DbContext类以使用UserID和BranchID作为键

modelBuilder.Entity <UsersBranchs>()。HasKey(x => new {x.UserID,x.BranchID});


分支机构现为

   [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
   [Key]
   public Guid ID { get; set; }

   [ForeignKey("UserID")]
   public CoreUsers User { get; set; }
   public Guid UserID { get; set; }

   public .....


现“用户类别”为

   [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
   [Key]
   public Guid ID { get; set; }

   public .....
凯巴特尔

长期以来,Sql Server一直无法处理多个级联路径无法对同一表进行级联删除只是Google错误消息。基本上,如果要使用级联删除,则必须确保只有单个级联路径。

目前,您有两个来自Branchs-> UsersBranchs和Branchs-> Users-> UsersBranchs的路径。

EF默认情况下会设置级联删除,但是可以通过删除DbContext中的约定来停止它。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    // Manually set cascade delete behaviour
    modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
    modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();

    base.OnModelCreating(modelBuilder);
}

然后,您必须在要级联删除的任何关系上设置WillCascadeOnDelete(true)。请参阅实体框架文档

除此之外,您的模型似乎有些奇怪。您看起来好像试图建立一个多对多链接/联接表UsersBranchs,但是在Branchs上也只有一个User并没有任何意义。在这种情况下,您甚至需要UsersBranchs表吗?您是否意味着在分支机构上拥有一组用户,即导航属性而不是外键,从而提供了一对多关系分支->用户?

顺便说一句,我真的不喜欢对单个实体使用复数。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类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

MVC 4实体框架同一表的两个外键导致循环或多个级联路径

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

实体框架代码优先:循环或多个级联路径

来自分类Dev

实体框架-外键约束

来自分类Dev

ASP.NET 5(MVC6)EF7外键可能会导致循环

来自分类Dev

外键约束级联或多个级联路径错误asp.net MVC

来自分类Dev

实体框架-代码优先-外键约束

来自分类Dev

实体框架:指定外键约束名称

来自分类Dev

实体框架:如果引用列是标识列,则无法创建级联外键。无法创建约束或索引

来自分类Dev

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

来自分类Dev

实体框架映射。多个外键

来自分类Dev

多个DataAnnotation外键周期或多个级联路径异常

来自分类Dev

实体框架多个复合键,在删除时级联

来自分类Dev

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

来自分类Dev

循环或多个级联路径

来自分类Dev

实体框架迁移 - 更改表语句与外键约束冲突

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

    MVC 4实体框架同一表的两个外键导致循环或多个级联路径

  11. 11

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

  12. 12

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

  13. 13

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

  14. 14

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

  15. 15

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

  16. 16

    实体框架代码优先:循环或多个级联路径

  17. 17

    实体框架-外键约束

  18. 18

    ASP.NET 5(MVC6)EF7外键可能会导致循环

  19. 19

    外键约束级联或多个级联路径错误asp.net MVC

  20. 20

    实体框架-代码优先-外键约束

  21. 21

    实体框架:指定外键约束名称

  22. 22

    实体框架:如果引用列是标识列,则无法创建级联外键。无法创建约束或索引

  23. 23

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

  24. 24

    实体框架映射。多个外键

  25. 25

    多个DataAnnotation外键周期或多个级联路径异常

  26. 26

    实体框架多个复合键,在删除时级联

  27. 27

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

  28. 28

    循环或多个级联路径

  29. 29

    实体框架迁移 - 更改表语句与外键约束冲突

热门标签

归档