2013-07-02 108 views
3

我有兩個單獨的表。如何映射枚舉與NHibernate的一對多關係?

[users] [ roles ] 
+-----+ +-------+ 
| id | |user_id| 
+-----+ +-------+ 
      | value | <- [Represented by the enum] 
      +-------+ 

併爲他們的模型。

class User { int id; IList<Roles> Roles; } 

enum Roles { Worker, Manager, Director } 

正如你所看到的,它很簡單,「一對多」。用戶有很多角色。如何在XML中映射這些模型?

+0

位掩碼操作可能會解決此問題。但在這種情況下,我需要更改現有的API。 – x2bool

回答

0

你的貼圖怎麼樣? 沒有嘗試這樣的事:

HasMany(x => x.Roles) 
    .Cascade.All() 
    .Table("UserRoles") 
    .Element("RolesEnum"); 
0

我知道這是一個老問題,但在尋找答案時,碰到這個來作爲第一環節之一。這似乎是爲用戶實體工作(與FluentNhibernate):

HasMany(x => x.Roles) 
.Cascade.All() 
.Table("roles") 
.KeyColumn("user_id") 
.Element("value", m => m.Type<EnumStringType<Roles>>());