我有一个Team
表和一个Matches
表。
团队表:
Id Name
------------
1 TeamA
2 TeamB
如果TeamA希望玩TeamB,我们将在Matches
表
匹配表格:
Id HomeTeamId RivalTeamId
-------------------------
1 1 2
如果TeamB希望挑战TeamA,我们将继续执行以下操作
匹配表格:
Id HomeTeamId RivalTeamId
-----------------------------
1 1 2
2 2 1
我的Team
和Match
POCO(仅相关代码)如下所示:
public class Team : BaseEntity
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Match> HomeMatches { get; set; }
public ICollection<Match> RivalMatches { get; set; }
}
public class Match : BaseEntity
{
public int Id { get; set; }
public string Description { get; set; }
//navs
public Team HomeTeam { get; set; }
public int HomeTeamId { get; set; }
public Team RivalTeam { get; set; }
public int RivalTeamId { get; set; }
}
问题:我想专家们已经注意到在查询过程中我会遇到一个循环的可能性。我的问题是我想查询TeamA的比赛。我会为此做
Team team= dbContext.Team.
Include("HomeMatches").
在上面的团队对象中,我注意到 BOTH 属性HomeMatches
和RivalMatches
似乎已填满。
我只想填充HomeMatches
属性。我只对TeamA选择参加的比赛感兴趣,而不是那些TeamA是竞争对手的比赛。
我的问题是,当我明确提到Include("HomeMatches")
时,为什么RivalMatches
属性也被填充?