.net core 2.0-mvc应用程序中有以下类:
public class TeamMatch
{
public int ID { get; set; }
public virtual ICollection<IndividualMatch> Matches { get; set; }
public IEnumerable<Map> GetMaps()
{
var list = new List<IndividualMatch>();
list.AddRange(Matches.GroupBy(m => m.MatchMap.ID).Select(u => u.First()));
return list.Select(m => m.MatchMap);
}
}
public class IndividualMatch
{
public int ID { get; set; }
public Map MatchMap { get; set; }
}
public class Map
{
public int ID { get; set; }
public string Name { get; set; }
}
这将从控制器传递到视图:
public IActionResult Index()
{
var dat = _context.TeamMatches.Include(tm => tm.Matches).ToList();
return View(dat);
}
在该视图中调用TeamMatch.GetMaps()时收到NullReferenceException。特别是在这行代码中,应该在所有的IndividualMatches中为我提供一系列独特的地图:
list.AddRange(Matches.GroupBy(p => p.MatchMap.ID).Select(g => g.First()));
我认为我需要某种程度的提高,而不仅仅是我在其中包括的IndividualMatch。我该怎么做?
答案 0 :(得分:1)
我认为我需要某种程度的提升,而不仅仅是我在其中包含的IndividualMatch。
是的。
我如何做到这一点?
答案取决于您定位的目标Entity Framework-EF6或EF Core,因为它们使用不同的机制来包含多个级别的相关数据。这就是为什么在问题中包含此类信息很重要的原因。
假设您使用EF Core(基于“我的.net core 2.0-mvc应用” ),则Including multiple levels是通过链接Include
/ { {1}}表达式:
ThenInclude