Fluent nhibernate &引用;间接的;多人关系

Fluent nhibernate &引用;间接的;多人关系,fluent-nhibernate,nhibernate-mapping,Fluent Nhibernate,Nhibernate Mapping,警告:我是NHibernate的新手 我有一个用户对象。此用户对象具有相关角色。这些角色具有相关权限。目标是获取用户的权限列表。特权通过角色与用户“间接”相关 当对用户进行选择以获取相关权限列表时,我可能会返回多个权限。所以我做了一个UNIQE选择 我想知道是否有可能有一些“神奇的”NHibernate映射来填充我的角色列表和特权列表。我自己解决的最简单的部分(骄傲!;-)是正确地映射角色。我不知道如何获得“间接”相关(唯一)特权 有什么想法吗?公共类用户 public class User {

警告:我是NHibernate的新手

我有一个用户对象。此用户对象具有相关角色。这些角色具有相关权限。目标是获取用户的权限列表。特权通过角色与用户“间接”相关

当对用户进行选择以获取相关权限列表时,我可能会返回多个权限。所以我做了一个UNIQE选择

我想知道是否有可能有一些“神奇的”NHibernate映射来填充我的角色列表和特权列表。我自己解决的最简单的部分(骄傲!;-)是正确地映射角色。我不知道如何获得“间接”相关(唯一)特权

有什么想法吗?

公共类用户
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>();
    }
}
{ 公共虚拟整数Id{get;set;} 公共虚拟ICollection角色{get;private set;} 公共虚拟IEnumerable权限 { get{return Roles.SelectMany(role=>role.Priveleges.Distinct();} } 公共用户() { 角色=新列表(); } }
和查询一样

session.QueryOver<User>()
    .Fetch(u => u.Roles).Eager
    .Fetch(u => u.Roles.Privileges).Eager
session.QueryOver()
.Fetch(u=>u.Roles)。急切
.Fetch(u=>u.Roles.Privileges)。急切
公共类用户
{
公共虚拟整数Id{get;set;}
公共虚拟ICollection角色{get;private set;}
公共虚拟IEnumerable权限
{
get{return Roles.SelectMany(role=>role.Priveleges.Distinct();}
}
公共用户()
{
角色=新列表();
}
}
和查询一样

session.QueryOver<User>()
    .Fetch(u => u.Roles).Eager
    .Fetch(u => u.Roles.Privileges).Eager
session.QueryOver()
.Fetch(u=>u.Roles)。急切
.Fetch(u=>u.Roles.Privileges)。急切