2009-05-18 7 views
3

私はこのようになりますクラスを持っている:名前をマッピング流暢NHibernateは - バインド・リスト<int>

public class User { 
     public virtual int ID; 
     public virtual string Name; 
     public virtual IList<int> userRights; 
} 

I want to make a UserMap : ClassMap<User> 

は問題ありませんしかし、私はuserRightsをマッピングする方法を見つけ出すように見える傾けます。どのようにあなたがこれをマップする

表は

UserTable 
User_id int 
User_Name nvarchar 
User_group int 

UserRights 
User_group int 
RightID int 

のように見えますか?

+0

実際、初めて私が答えたとき、私はそれを十分によく読まなかったことに気付きました。概念的には、User_groupというものもあります。 NHibernateでは、many-to- *は通常、主キーで動作します。 – Min

答えて

2

リストが必要な場合は、インデックスが必要です。したがって、注文が重要でない限り、ICollectionにすることをお勧めします。

HasMany(x=> x.userRights).Element("RightID").AsBag(); 

は、しかし、あなたのテーブルを見ている時に、私は奇妙な何かに気づいた:

マッピングは次のようになります。 User_Rightsテーブルにプライマリキーを持たずに1対多を使用しようとしています。 UserRightsにUser_Idが含まれていれば、上記が有効になります。

それ以外の場合は、クラスによってモデル化されるべきUserGroupがあるようです。