C# 具有多对多未加载集合属性的实体
我有一个实体名册,有一个球员的集合C# 具有多对多未加载集合属性的实体,c#,entity-framework,ef-code-first,many-to-many,entity-framework-4.3,C#,Entity Framework,Ef Code First,Many To Many,Entity Framework 4.3,我有一个实体名册,有一个球员的集合 public class Roster { public Roster() { Players = new List<Player>(); } public int RosterId { get; set; } [MaxLength(100)] [Required] public string RosterName { get; set; } public ICo
public class Roster
{
public Roster()
{
Players = new List<Player>();
}
public int RosterId { get; set; }
[MaxLength(100)]
[Required]
public string RosterName { get; set; }
public ICollection<Player> Players { get; set; }
}
public class Player
{
public int PlayerId { get; set; }
[MaxLength(100)]
[Required]
public string PlayerName { get; set; }
public virtual ICollection<Roster> Rosters { get; set; }
}
但是,当我检索花名册时,不会加载球员集合。我用所有正确的值验证了数据的存在性,并且下面的sql不会删除数据
SELECT * from Rosters r
INNER JOIN RosterPlayers rp on r.RosterId = rp.RosterId
INNER JOIN Players p ON p.PlayerId = rp.PlayerId
我缺少什么?将
玩家属性设置为虚拟,以便EF可以延迟加载收藏
public class Roster
{
//...........
public virtual ICollection<Player> Players { get; set; }
}
var rosters = db.Rosters.Include(r => r.Players).ToList();
啊!。。。你花了那么多时间去寻找,有时候最微不足道的问题就是被忽略了。谢谢
public class Roster
{
//...........
public virtual ICollection<Player> Players { get; set; }
}
var rosters = db.Rosters.Include(r => r.Players).ToList();