用于枚举集合的nHibernate代码映射

时间:2012-02-14 17:40:09

标签: nhibernate nhibernate-mapping

我开始使用nHibernate代码映射,而且我一直在映射一组枚举。

(注意,此问题与Mapping collection of enum in NHibernate类似,但不同之处在于我想使用代码映射进行映射。)

我有一个实体“角色”,其中包含一个“权限”集合,其权限是枚举。

旧的xml映射是:

<set name="Permissions" cascade="none" table="role_permissions">
  <key column="role_id" />
  <element column="permission_id" type="MyApp.Permissions, MyApp" />
</set>

我正在尝试使用这样的代码进行映射,但是我得到了一个例外:

Set(x => x.PermissionCollection, m => { },
  r => r.Element(e =>
  {
    e.Column("permission_id");
    e.Type<Permissions>();
  }));

抛出异常是

Expected type implementing IUserType or IType.
Parameter name: persistentType

1 个答案:

答案 0 :(得分:1)

试试这个

Set(x => x.PermissionCollection, m =>
{
    m.Key(km => km.Column("role_id"));
    m.Table("role_permissions");
},
r => r.Element(e => e.Column("permission_id")));