Отображение кода nHibernate для коллекции enum - PullRequest
0 голосов
/ 14 февраля 2012

Я начинаю работать с отображением кода nHibernate и застрял на отображении коллекции перечислений.

(Обратите внимание, этот вопрос похож на Отображение коллекции enum в 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 Ответ

1 голос
/ 14 февраля 2012

Попробуйте это

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