2011-08-11 10 views
1

警告:私はNHibernateのまったく新しいです!"間接" ManyToMany関係

私はUserオブジェクトを持っています。このUserオブジェクトには、関連するロールがあります。これらのロールには関連する特権があります。目標は、ユーザーの特権のリストを取得することです。特権はロールを介してユーザーに「間接的に」関連しています。

関連する権限のリストを取得するためにユーザーを選択する際に、私は特権の倍数を返すことがあります。だから私は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

関連する問題