특정 값으로 탐색 속성을 채우려면 어떻게해야합니까?탐색 속성의 탐색 속성 채우기
아래에 정의 된 Game, UserTeam, User의 세 가지 모델이 있습니다. 나는 IEnumerable 모델을 사용하는 면도기 뷰를가집니다. 이보기는 게임을 반복하며 해당 루프 내에서 UserTeams를 반복합니다. 여태까지는 그런대로 잘됐다.
UserTeam 루프 내에서 사용자 속성에 액세스하려고하지만 null입니다. 각 UserTeam 객체에 대한 사용자 탐색 속성을 채우려면 어떻게해야합니까? UserTeam 모델에 매개 변수가있는 생성자가 필요합니까?
모델
게임을 반환 내 면도기보기public class Game
{
public Game()
{
UserTeams = new HashSet<UserTeam>();
}
public int Id { get; set; }
public int CreatorId { get; set; }
public string Name { get; set; }
public int CurrentOrderPosition { get; set; }
public virtual UserProfile Creator { get; set; }
public virtual ICollection<UserTeam> UserTeams { get; set; }
}
public class UserTeam
{
public UserTeam()
{
User = new UserProfile();
}
public int Id { get; set; }
public int UserId { get; set; }
public int GameId { get; set; }
public int OrderPosition { get; set; }
public virtual UserProfile User { get; set; }
public virtual Game Game { get; set; }
public virtual IList<UserTeam_Player> UserTeam_Players { get; set; }
}
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string test { get; set; }
public UserProfile()
{
UserTeams = new HashSet<UserTeam>();
}
public virtual ICollection<UserTeam> UserTeams { get; set; }
[ForeignKey("CreatorId")]
public virtual ICollection<Game> Games { get; set; }
}
루프 (모델을 IEnumerable입니다) 내 저장소에
@foreach (var item in Model) {
@foreach (var userteam in item.UserTeams) {
@Html.ActionLink("Join game as"+userteam.User.UserName, "JoinGame", new { gameid = item.Id, userid=userteam.UserId })
}
}
방법
public IEnumerable<Game> GetAllGames()
{
using (DataContext)
{
var gm = DataContext.Games.Include("UserTeams").ToList();
return gm;
}
}
Thewads 대답은 @Slaumas 코멘트와 함께 문제를 해결했습니다. GameTemplator에서 UserTeams를 인스턴스화해도 UserTeam 생성자에서 사용자를 인스턴스화하는 것과 동일한 문제가 발생하지 않는 이유는 여전히 남아 있습니다. – jag