Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有多对多未加载集合属性的实体_C#_Entity Framework_Ef Code First_Many To Many_Entity Framework 4.3 - Fatal编程技术网

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();