2011-08-11 137 views
1

警告:我是NHibernate的全新品!「間接」ManyToMany關係

我有一個用戶對象。此用戶對象具有相關的角色。這些角色擁有相關的權限。目標是獲取用戶的特權列表。權限通過角色與用戶「間接」相關。

當用戶選擇獲取相關權限列表時,我可能會得到多個特權。所以我做了UNIQE選擇。

我想知道是否可能有一些'魔術'NHibernate映射,將填充我的角色列表和我的權限列表。我自己解決這個簡單的部分(驕傲!;-))正確地映射了角色。我不知道如何獲得「間接」相關(獨特)特權。

任何想法?

回答

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 
+0

酷,工作。非常感謝! – Andreas