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

本文关键字:关系 映射 枚举 一对多 NHibernate | 更新日期: 2023-09-27 18:20:37

我有两个单独的表。

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

以及他们的模型。

class User { int id; IList<Roles> Roles; }
enum Roles { Worker, Manager, Director }

正如你所看到的,这是简单的"一对多"。用户有许多角色。如何在XML中映射这些模型?

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

映射如何?你试过这样的东西吗:

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

我知道这是一个老问题,但在寻找答案时,我发现这是第一个链接。似乎这样做是为了用户实体(使用Fluenthibernate):

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