如何在与NHibernate的一对多关系中映射枚举?

时间:2013-07-02 10:07:10

标签: c# .net nhibernate nhibernate-mapping

我有两个单独的表格。

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

他们的模型。

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

enum Roles { Worker, Manager, Director }

如你所见,它很简单,“一对多”。用户有很多角色。如何在XML中映射这些模型?

2 个答案:

答案 0 :(得分:0)

你的映射怎么样? 你尝试过这样的事情吗?

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

答案 1 :(得分:0)

我知道这是一个老问题,但在寻找答案时,它是第一个链接之一。似乎为User实体执行此操作(使用FluentNhibernate):

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