实体框架6未加载导航属性(延迟加载)

时间:2017-03-18 03:07:12

标签: c# asp.net .net asp.net-mvc entity-framework-6

我试图加载以下数据库结构

用户 - > UserTeamRelation - >团队 - >游戏

在此关系中,“团队”在尝试访问时已经为空 “user.Teams.Team”。

我有以下数据库结构

using (var db = new ApplicationDbContext())
{
    var user = db.Users.FirstOrDefault(x => x.UserName.ToLower().Equals(username));
    if (user == null)
    {
        return new ResponseViewModel(false, "User nicht gefunden", null);
    }

    var teams = new List<Team>();
    foreach (var team in user.Teams)
    {
        teams.Add(new Team()
        {
            Description = team.Description,
            TeamName = team.Team.TeamName,
            GameName = team.Team.Game.Name
        });
    }
}

我尝试了以下代码

{{1}}

它到达foreach循环并找到“Description”属性。但是当我尝试访问团队模型时,它就是null。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

TeamMember模型类中应该有一个外键:

public class TeamMember
{
    public TeamMember()
    {
        this.Id = Guid.NewGuid().ToString();
    }

    [Key]
    public string Id { get; set; }

    [Required]
    public string TeamId { get; set; }

    [ForeignKey("TeamId")]
    public virtual Team Team { get; set; }

    [Required]
    public string UserId { get; set; }

    [ForeignKey("UserId")]
    public virtual User Member { get; set; }
}

答案 1 :(得分:0)

好。经过一些研究后我发现,由于数据不一致/数据库损坏,只有团队实体不存在。

感谢您的帮助。

使用&#34;解决方案(&#34; Teams.Team.Game&#34;)&#34;也做了伎俩