我正在尝试开发一个 ASP.NET MVC 4 应用程序,可以根据玩家的进攻、防守和助攻技能对他们进行评级。进攻、防守和助攻是球员表上的外键,引用相同的查找表 - 评分。
我有以下父实体:
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 新手,不知道我在这里缺少什么。对此的任何帮助将不胜感激。谢谢。
默认情况下,实体框架具有级联删除约定。当两个实体彼此具有外键时,会导致循环引用,并且“删除时级联”无法应用于这两个实体。
最简单的解决方案是删除级联删除约定 http://geekswithblogs.net/danemorgridge/archive/2010/12/17/ef4-cpt5-code-first-remove-cascading-deletes.aspx,并根据具体情况应用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)