假设您想在用户表中创建一个父子关系,其类型为 0 到 1,我们希望以同样的方式进一步添加性别。
public class Gender
{
[Key]
public virtual int GenderID { get; set; }
public virtual string GenderName { get; set; }
public virtual ICollection<UserProfile> UserProfiles { get; set; }
}
和用户资料
public class UserProfile
{
[Key]
public virtual int UserId { get; set; }
public virtual UserProfile UserParent { get; set; }
public virtual int? ParentUserId { get; set; }
public virtual String UserName { get; set; }
public virtual Gender Gender { get; set; }
public virtual int? GenderID { get; set; }
}
为了清楚起见
modelBuilder.Entity<UserProfile>()
.HasOptional(c => c.UserParent);
// User -> Gender
modelBuilder.Entity<UserProfile>()
.HasOptional(g => g.Gender);
一切看起来都不错,但目前我无法检索从父用户名获得的数据。
public IQueryable<UserProfileListViewModel> UserAllVM
{
get
{
var uservm = context.UserProfiles
.Select(l => new UserProfileListViewModel
{
UserId = l.UserId,
UserName = l.UserName,
ParentUserId = l.ParentUserId ?? 0,
//ParentUserName = this.context.UserProfiles.Where(e => e.UserId == l.ParentUserId).FirstOrDefault().UserName ?? "",
ParentUserName = l.UserParent.UserName, **// this way make always null**
GenderID = l.GenderID ?? 0,
GenderName = l.Gender.GenderName ?? "",
});
return uservm;
}
}
注释掉现在获取父用户名的方式。问题是为什么我无法检索 Parent UserName - 我想念某事?
Tx 寻求帮助