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

贾尼夫

我正在使用EF6 Code First。我有两节课:

public class Player
{
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    [Key]
    public int Id { get; set; }

    [Required, MinLength(2, ErrorMessage = "Player name must be at least 2 characters length")]
    public string Name { get; set; }

    [Required]
    public int TeamClubId { get; set; }

    [Required]
    public int TeamNationalId { get; set; }

    [Required, ForeignKey("TeamClubId")]
    public virtual Team Club { get; set; }

    [Required, ForeignKey("TeamNationalId")]
    public virtual Team National { get; set; }

}

和:

 public class Team
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [Required, MinLength(2, ErrorMessage = "Team name must be at least 2 characters length")]
    public string Name { get; set; }

    [Required]
    public TeamType Type { get; set; }

    public virtual ICollection<Player> Players { get; set; }
}

这是我两个班级的关系。一个球员属于两支球队:俱乐部和国家队。一支球队可以是俱乐部,也可以是国家队,并拥有一批球员。

在我的上下文文件中,我使用:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Player>()
                .HasRequired<Team>(p => p.National)
                .WithMany(t => t.Players)
                .WillCascadeOnDelete(false);

        base.OnModelCreating(modelBuilder);
    }

运行迁移工具更新数据库时,出现以下错误:

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

我该如何解决?

贾尼夫

使用Fluent API:

        //player - national team relations
        modelBuilder.Entity<Player>()
            .HasRequired<Team>(p => p.National)
            .WithMany()
            .WillCascadeOnDelete(false);

        //player - club team relations
        modelBuilder.Entity<Player>()
            .HasRequired<Team>(p => p.Club)
            .WithMany()
            .WillCascadeOnDelete(false);

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使对动态表LINQ EF6代码优先的访问成为可能

来自分类Dev

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

来自分类Dev

EF6代码首次延迟加载导致空集合

来自分类Dev

EF6代码首次延迟加载导致空集合

来自分类Dev

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

来自分类Dev

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

来自分类Dev

EF6代码优先模型ForeignKey

来自分类Dev

EF6代码第一个多个一对多映射问题/“多重性”错误

来自分类Dev

EF6代码第一个多个一对多映射问题/“多重性”错误

来自分类Dev

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

来自分类Dev

EF6代码优先对表进行复数的对象名称无效

来自分类Dev

EF6代码优先:使用Fluent API声明外键

来自分类Dev

EF6代码优先更改数据值

来自分类Dev

如何以EF6代码优先的方式删除实体之间的关系?

来自分类Dev

具有相同实体的2个属性时的EF6代码优先混淆

来自分类Dev

EF6代码优先:更新数据库登录失败

来自分类Dev

EF6代码优先:将参数传递给映射的删除存储过程

来自分类Dev

实体框架6代码优先迁移-多个生产分支

来自分类Dev

EF6代码优先,具有通用存储库以及依赖注入和SoC

来自分类Dev

EF6代码优先-使用不匹配的外键配置一对一关系

来自分类Dev

更改模型时,EF6代码优先删除表(不是整个数据库)

来自分类Dev

如何在EF6代码优先中对数据库上下文使用通用类型

来自分类Dev

如何为一个模型创建两个导航属性(EF6代码优先)

来自分类Dev

EF6代码优先-使用不匹配的外键配置一对一关系

来自分类Dev

EF 6代码优先存储过程-只读

来自分类Dev

如何使用与同一子表相关的两个或多个列表正确构建EF5代码优先模型?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

Related 相关文章

  1. 1

    使对动态表LINQ EF6代码优先的访问成为可能

  2. 2

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

  3. 3

    EF6代码首次延迟加载导致空集合

  4. 4

    EF6代码首次延迟加载导致空集合

  5. 5

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

  6. 6

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

  7. 7

    EF6代码优先模型ForeignKey

  8. 8

    EF6代码第一个多个一对多映射问题/“多重性”错误

  9. 9

    EF6代码第一个多个一对多映射问题/“多重性”错误

  10. 10

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

  11. 11

    EF6代码优先对表进行复数的对象名称无效

  12. 12

    EF6代码优先:使用Fluent API声明外键

  13. 13

    EF6代码优先更改数据值

  14. 14

    如何以EF6代码优先的方式删除实体之间的关系?

  15. 15

    具有相同实体的2个属性时的EF6代码优先混淆

  16. 16

    EF6代码优先:更新数据库登录失败

  17. 17

    EF6代码优先:将参数传递给映射的删除存储过程

  18. 18

    实体框架6代码优先迁移-多个生产分支

  19. 19

    EF6代码优先,具有通用存储库以及依赖注入和SoC

  20. 20

    EF6代码优先-使用不匹配的外键配置一对一关系

  21. 21

    更改模型时,EF6代码优先删除表(不是整个数据库)

  22. 22

    如何在EF6代码优先中对数据库上下文使用通用类型

  23. 23

    如何为一个模型创建两个导航属性(EF6代码优先)

  24. 24

    EF6代码优先-使用不匹配的外键配置一对一关系

  25. 25

    EF 6代码优先存储过程-只读

  26. 26

    如何使用与同一子表相关的两个或多个列表正确构建EF5代码优先模型?

  27. 27

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

  28. 28

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

  29. 29

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

热门标签

归档