警告:我是NHibernate的新手!
我有一个User对象。此User对象具有相关角色。这些角色具有相关权限。目标是获取用户的权限列表。权限通过角色“间接”与用户相关。
当对用户进行选择以获取相关权限列表时,我可能会获得权限的倍数。所以我做了UNIQE选择。
我想知道是否可以使用一些“魔术”NHibernate映射来填充我的角色列表和我的权限列表。我自己解决的简单部分(骄傲!;-))正确映射角色。我不知道如何获得'间接'相关(独特)权限。
有什么想法吗?
答案 0 :(得分:1)
public class User
{
public virtual int Id { get; set; }
public virtual ICollection<Role> Roles { get; private set; }
public virtual IEnumerable<Privilege> Privileges
{
get { return Roles.SelectMany(role => role.Priveleges).Distinct(); }
}
public User()
{
Roles = new List<CompanyRole>();
}
}
和查询类似
session.QueryOver<User>()
.Fetch(u => u.Roles).Eager
.Fetch(u => u.Roles.Privileges).Eager