我开始使用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
答案 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")));