我有3个具有多对多连接的实体(表):
public class AccUserRole
{
public long Id { get; set; }
public string RoleName { get; set; }
public List<AccAdGroup> Groups { get; set; }
public List<AccScreen> Screens { get; set; }
}
public class AccAdGroup
{
public long Id { get; set; }
public string AdIdent { get; set; }
public List<AccUserRole> Roles { get; set; }
}
public class AccScreen
{
public long Id { get; set; }
public string ScreenIdent { get; set; }
public List<AccUserRole> Roles { get; set; }
}
我想要获取所有角色(包括他们的屏幕和组),这些角色至少有一个指定的组列表(当前用户的组)。所以我使用了这个查询:
List<AccUserRole> userRoles = (from ur in db.AccUserRoles.Include("Groups").Include("Screens")
from g in ur.Groups
where user.Groups.Contains(g.AdIdent)
select ur).ToList();
它获得了正确的角色,但Groups
和Screens
属性为空。看起来EF在使用Include
和第二个from
时遇到了问题。任何关于如何包含属性或重写查询的帮助都将不胜感激。
https://stackoverflow.com/questions/25764005
复制相似问题