asp.net-mvc – 填充导航属性的导航属性
发布时间:2020-12-16 06:27:13 所属栏目:asp.Net 来源:网络整理
导读:如何使用特定值填充导航属性? 我有3个模型,Game,UserTeam,User,定义如下.我有一个使用IEnumerable模型的剃刀视图.此视图循环遍历游戏,并在该循环内循环用户团队.到现在为止还挺好. 在UserTeam循环中,我想访问用户属性,但它们是null.如何为每个UserTeam对象
如何使用特定值填充导航属性?
我有3个模型,Game,UserTeam,User,定义如下.我有一个使用IEnumerable模型的剃刀视图.此视图循环遍历游戏,并在该循环内循环用户团队.到现在为止还挺好. 在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; } } 在我的Razor视图中循环(模型是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; } } 解决方法
您需要在存储库方法中包含它.如果你正在使用渴望加载,那就像是
var gm = DataContext.Games .Include(x => x.UserTeams) .Include(x => x.UserTeams.Select(y => y.User)) .ToList(); 我没有使用LINQ作为我的查询,但我认为它将是这样的: var gm = DataContext.Games.Include("UserTeams.User").ToList(); 希望这会帮助你 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 有人解释我Html.DropDown,它是最亲密的朋友
- asp.net-mvc – ASP.NET MVC检查Controller或Action中的自定
- asp.net-mvc – 填写下拉列表中选择另一个下拉列表
- asp.net-mvc – 在ASP.NET Identity 2.0中更改AspNetUsers表
- asp.net-mvc – 在Visual Studio中快速浏览ASP.NET MVC应用
- asp.net-mvc – 快捷键在Visual Studio 2012中不起作用
- asp.net – 操纵HTTP响应
- ASP.NET 将字节大小转换为适合阅读的格式M,G,T
- asp.net-core – AspNetCore Abstractions无法加载
- asp.net-mvc – 在EditorTemplate中渲染字段名称(通过Edito
推荐文章
站长推荐
- asp.net – Oracle中的参数化查询问题
- asp.net-mvc – 如何在ASP.NET MVC中使用单选模式
- asp.net – 如何设置Thread.CurrentPrincipal以在
- asp.net-mvc – DiggBar如何工作?
- asp.net – SQL网络接口,错误:26 – 定位服务器
- 如何在ASP.NET中删除/放弃请求?
- asp.net – MVC 4如何为WebGrid设置行ID
- asp-classic – 如何在VBScript中逐行读取CSV文件
- asp.net – 在asp:GridView中插入隐藏列但仍然可
- asp.net-ajax – 该页面正在执行异步回发,但Scri
热点阅读