我有三个型号,
Competition
,
Team
和
TeamUser
. 每场比赛有许多队,每个队有许多用户。我想在将数据返回到视图时使用ef core将所有3绑定在一起,但我不能真正绑定到用户。因此,我必须在我的视图中实现一些复杂的逻辑,尽管它可以工作,但看起来非常混乱和混乱。我相信有一种方法可以一起返回数据。
竞争
模型类:
public class Competition
{
[Key]
public int ID { get; set; }
[Required]
[Display(Name = "Competition Name")]
public string CompetitionName { get; set; }
[Required]
public string Status { get; set; }
public ICollection<Team> Teams { get; set; }
}
团队
模型类:
public class Team
{
[Key]
public int TeamID { get; set; }
[Required]
[DisplayName("Team Name")]
public string TeamName { get; set; }
[ForeignKey("CompetitionID")]
public int CompetitionID { get; set; }
public ICollection<TeamUser> TeamUsers { get; set; }
}
团队用户
模型类:
public class TeamUser
{
[Key]
public int TeamUserID { get; set; }
[ForeignKey("TeamId")]
public int TeamId { get; set; }
public string UserId { get; set; }
}
这是我的控制器。
public IActionResult Index()
{
var competition = _context.Competitions
.Include(c => c.Teams)
.ToList();
var teamUsers = _context.TeamUsers
.ToList();
if (competition == null)
{
return NotFound();
}
CompetitionIndexViewModel vm = new CompetitionIndexViewModel();
vm.Competition = competition;
vm.TeamUsers = teamUsers;
return View(vm);
}
正如你所看到的,这是非常混乱的,我不得不求助于使用ViewModel来获取我的数据。希望有一个更简单的解决方案。非常感谢你!