gpt4 book ai didi

asp.net-mvc - ASP.NET MVC 4 引用单父实体的多个外键

转载 作者:行者123 更新时间:2023-12-01 10:59:03 24 4
gpt4 key购买 nike

我正在尝试开发一个 ASP.NET MVC 4 应用程序,玩家可以根据他们的进攻、防守和助攻技能进行评分。 Offence、Defense 和 Assist 是 Player 表上的外键,引用相同的查找表 - Rating。

我有以下父实体:

public class Rating
{
public int Id { get; set; }

public string Name { get; set; }

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

和子实体:

public class Player
{
public int Id { get; set; }

public string Name { get; set; }

public int OffenceRatingId { get; set; }
[ForeignKey("OffenceRatingId")]
public virtual Rating OffenceRating { get; set; }

public int DefenceRatingId { get; set; }
[ForeignKey("DefenceRatingId")]
public virtual Rating DefenceRating { get; set; }

public int AssistRatingId { get; set; }
[ForeignKey("AssistRatingId")]
public virtual Rating AssistRating { get; set; }
}

构建和脚手架运行良好,但当我运行该应用程序时,出现以下错误:

Introducing FOREIGN KEY constraint 'FK_dbo.Players_dbo.Ratings_DefenceRatingId' on table 'Players' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.

我是 MVC 的新手,不知道我在这里缺少什么。对此的任何帮助将不胜感激。谢谢。

最佳答案

默认情况下,Entity Framework 有一个 Cascade on Delete 约定。当两个实体彼此具有外键时,会导致循环引用,并且 Cascade on Delete 不能应用于两个实体。

最简单的解决方案是删除 cascade on delete convention ,并根据具体情况应用它。

关于asp.net-mvc - ASP.NET MVC 4 引用单父实体的多个外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12926675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com