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