我的数据类是
public class Data
{
public int Id { get; set; }
public int LeagueId { get; set; }
public League League { get; set; }
public int HomeTeamId { get; set; }
public virtual Team HomeTeam { get; set; }
public int AwayTeamId { get; set; }
public virtual Team AwayTeam { get; set; }
}
我的团队课程是
public class Team
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Data> Datas { get; set; }
}
在我的FK_dbo.Data_dbo.Teams_Team_Id
表格中生成额外的外键Data
以及额外的列。
所以我的第一个问题是,那个外键是如何在那里创建的?
我可以在实体框架的同一个表中使用两个一对多的关系吗?
我需要将Data表中的HomeTeamId和AwayTeamId设置为一对多关系
答案 0 :(得分:1)
尝试:
public class Data
{
public int Id { get; set; }
public int LeagueId { get; set; }
[ForeignKey("LeagueId")] /* Add explicit foreign key data annotations */
public League League { get; set; }
public int HomeTeamId { get; set; }
[ForeignKey("HomeTeamId")]
public virtual Team HomeTeam { get; set; }
public int AwayTeamId { get; set; }
[ForeignKey("AwayTeamId")]
public virtual Team AwayTeam { get; set; }
}
public class Team
{
public Team()
{
this.HomeTeamData = new HashSet<Data>();
this.AwayTeamData = new HashSet<Data>();
}
public int Id { get; set; }
public string Name { get; set; }
[InverseProperty("HomeTeam")]
public virtual ICollection<Data> HomeTeamData { get; set; }
[InverseProperty("AwayTeam")]
public virtual ICollection<Data> AwayTeamData { get; set; }
}
如果有帮助,请告诉我。
答案 1 :(得分:0)
我怀疑你可能达到了实体能够找出你想要的东西的极限。您可能需要考虑使用一些Entity Annotations来指示实体您希望它实际执行的操作。