没有为第二行数据填充虚拟列表。这是我的userprofile模型
[Table("UserProfile")]
public class USRProfile
{
[Key]
public int UserId { get; set; }
[Required]
public string UserName { get; set; }
public int? IntroducerId { get; set; }
[ForeignKey("IntroducerId")]
public virtual USRProfile Introducer { get; set; }
public virtual List<UserInRole> UserInRoles { get; set; }
public virtual List<USRProfile> Members { get; set; }
}和我的用户角色模型
[Table("webpages_UsersInRoles")]
public class UserInRole
{
[Key]
public int RoleId { get; set; }
[ForeignKey("RoleId")]
public virtual UserRole UserRole { get; set; }
public int UserId { get; set; }
[ForeignKey("UserId")]
public virtual USRProfile User { get; set; }
}下面是我用来获取用户的查询
public JsonResult GetUser(int id)
{
var usr = uRepository.USRProfiles.FirstOrDefault(c => c.UserId == id);
var seconusrrole = usr.Members[1].UserInRoles;
//here seconusrrole is null, but called individually it get data.
return Json(, JsonRequestBehavior.AllowGet);
}这是一个bug,还是我做错了什么?
发布于 2016-01-28 21:54:13
您未加载相关实体
// using System.Data.Entity.Core.Objects;
var usr = uRepository.USRProfiles.Include(x => x.Members.Select(y => y.UserInRoles))
.FirstOrDefault(c => c.UserId == id);
var seconusrrole = usr.Members[1].UserInRoles;有关更多信息,请参阅Microsoft post:https://msdn.microsoft.com/en-ca/data/jj574232.aspx
编辑
必须添加要包含在表达式中的"System.Data.Entity.Core.Objects“命名空间。
include方法是IQueryable上的一个扩展方法。
https://stackoverflow.com/questions/35061411
复制相似问题