我有一个模型有两个字段有一个外键连接到不同的表。他们有不同的名字,我无法弄清楚如何让这种关系发挥作用。MVC 4外键属性
这是我的两个对象。 Visitor
和Home Teams
是我在设置关系时遇到的问题。
我得到的错误是:
“无法检索“Models.Game的元数据的 ForeignKeyAttribute财产VisitorID上键入‘Models.Game’不是 有效的导航。属性'Team'在依赖 类型'Models.Game'上找不到。名称值应该是有效的导航属性 name。“
public class Team
{
public Int64 TeamID { get; set; }
[Required(ErrorMessage = "{0} is required")]
[Display(Name = "Team Name")]
public string Name { get; set; }
[Required(ErrorMessage = "{0} is required")]
[Display(Name = "League Name")]
[ForeignKey("League")]
public Int64 LeagueID { get; set; }
public virtual League League { get; set; }
}
public class Game
{
public Int64 GameID { get; set; }
[Required(ErrorMessage = "{0} is required")]
[Display(Name = "Season Name")]
[ForeignKey("Season")]
public Int64 SeasonID { get; set; }
public virtual Season Season { get; set; }
[Required(ErrorMessage = "{0} is required")]
[DataType(DataType.DateTime)]
[Display(Name = "Game Time")]
public DateTime Time { get; set; }
[Required(ErrorMessage = "{0} is required")]
[Display(Name = "Visitor Team")]
[ForeignKey("Team")]
public Int64 VisitorID { get; set; }
public virtual Team Visitor { get; set; }
[Required(ErrorMessage = "{0} is required")]
[Display(Name = "Home Team")]
[ForeignKey("Team")]
public Int64 HomeID { get; set; }
public virtual Team Home { get; set; }
[Required(ErrorMessage = "{0} is required")]
[Display(Name = "Rink")]
[ForeignKey("Location")]
public Int64 LocationID { get; set; }
public virtual Location Location { get; set; }
public virtual List<GameEvent> GameEvents { get; set; }
}
什么是错误? &为什么你的主键是32位整数和64位的混合? – BenjaminPaul
如果您删除所有不需要的额外代码和数据注释将会很有帮助,因此我们更容易阅读(比如'required'和'display') –