我在EF中使用linq查询特定属性的问题。无法查询集合的集合
概述,用户具有关联的角色。每个角色都有关联组。我只是试图获取与用户关联的所有组的MAMUserGroup属性。我可以很容易地使用.Include()获得关联角色,但是在向关联的MAMUserGroups添加一个额外级别时遇到困难。
用户模式:
public class User
{
[Display(Name = "SSO")]
[Required]
[StringLength(9, ErrorMessage = "SSO must be 9 numbers", MinimumLength = 9)]
public virtual string ID { get; set; }
[Display(Name = "First Name")]
[Required]
public string FirstName { get; set; }
[Display(Name = "Last Name")]
[Required]
public string LastName { get; set; }
[Display(Name = "MAM Roles")]
public ICollection<MAMRoleModel> MAMRoles { get; set; }
}
MAMRole型号:
public class MAMRoleModel
{
public int ID { get; set; }
public string Name { get; set; }
public ICollection<MAMUserGroupModels> MAMUserGroups { get; set; }
}
MAM组型号:
public class MAMUserGroupModels
{
public int ID { get; set; }
public string MAMUserGroup { get; set; }
}
我已经试过
foreach(var bar in user.MAMRoles)
{
foreach(var foo in bar.MAMUserGroups)
{
//do something
}
}
但收到空引用错误。我也试过从haim770
var test = db.Users.Include(x => x.MAMRoles.Select(y=> y.MAMUserGroups));
但是MAMUserGroup是0的计数,所以它没有看到引用。
'yourDbSet.Include(user => user.MAMRoles.Select(role => role.MAMUserGroups))' – haim770
显示您尝试过的方式,以及它在哪里给您提供问题[mcve] – Nkosi
haim770,我是使用此代码获得0个MAMUserGroups的计数。我去了,并验证我的sql对象资源管理器中存在关系数据。 – rStackSharper