【发布时间】:2016-03-29 19:33:41
【问题描述】:
我有两个使用实体框架的模型。
public class Player
{
public int PlayerId { get; set; }
public string Name { get; set; }
public string Sex { get; set; }
public string Plays { get; set; }
public string FavouriteSurface { get; set; }
}
public class SinglesMatch
{
public int SinglesMatchId { get; set; }
public int Player1Id { get; set; }
public int Player2Id { get; set; }
public int PlayerIdWinner { get; set; }
public DateTime Date { get; set; }
public string Venue { get; set; }
public string Score { get; set; }
public List<Player> Players { get; set; }
}
我正在使用下面的代码尝试根据 SinglesMatch 模型中的 PlayerId 与 Player 模型中的 PlayerID 匹配来显示玩家的名称。
@foreach (var item in @Model)
{
<ul id="Players" class="bg-success"></ul>
<br/>
<h3>Date - @Html.DisplayFor(@modelItem => item.Date)</h3>
<li>Venue - @Html.DisplayFor(@modelItem => item.Venue)</li>
<li>Player 1 - @Html.DisplayFor(@modelItem => item.Players.First(p => p.PlayerId == item.Player1Id).Name)</li>
<li>Player 2 - @Html.DisplayFor(@modelItem => item.Players.First(p => p.PlayerId == item.Player2Id).Name)</li>
<li>Score- @Html.DisplayFor(@modelItem => item.Score)</li>
}
调试时,从我的存储库中检索模型时,导航属性始终显示为 null。
我是否以正确的方式使用导航属性?我的查询有问题吗?
编辑以包含 DbContext:
public TennisTrackerContext() : base("name=TennisTrackerContext")
{
}
public DbSet<Player> Players { get; set; }
public DbSet<PlayerRecord> PlayerRecords { get; set; }
public DbSet<SinglesMatch> SinglesMatches { get; set; }
public DbSet<DoublesMatch> DoublesMatches { get; set; }
public DbSet<Venue> Venues { get; set; }
}
}
【问题讨论】:
标签: entity-framework linq asp.net-mvc-4 model