У меня две отдельные таблицы.
[users] [ roles ]
+-----+ +-------+
| id | |user_id|
+-----+ +-------+
| value | <- [Represented by the enum]
+-------+
И модели для них.
class User { int id; IList<Roles> Roles; }
enum Roles { Worker, Manager, Director }
Как видите, это просто "один ко многим". У пользователя много ролей. Как сопоставить эти модели в XML?
Ответ 1 · renefc3
как твоя картография? вы пробовали что-то вроде этого:
HasMany(x => x.Roles)
.Cascade.All()
.Table("UserRoles")
.Element("RolesEnum");
Ответ 2 · Tony
Я знаю, что это старый вопрос, но наткнулся на него как на одну из первых ссылок при поиске ответа. Кажется, это для объекта User будет работать (с FluentNhibernate):
HasMany(x => x.Roles)
.Cascade.All()
.Table("roles")
.KeyColumn("user_id")
.Element("value", m => m.Type<EnumStringType<Roles>>());