У меня есть таблица под названием UserPermissions с FK для таблицы пользователей по userId, а затем строковый столбец для строкового значения перечисления.
Я вижу ошибку NHibernate.MappingException: ассоциация из таблицы UserPermissions относится к несопоставленному классу: GotRoleplay.Core.Domain.Model.Permission.
Мое перечисление разрешений:
public enum Permission
{
[StringValue("Add User")]
AddUser,
[StringValue("Edit User")]
EditUser,
[StringValue("Delete User")]
DeleteUser,
[StringValue("Add Content")]
AddContent,
[StringValue("Edit Content")]
EditContent,
[StringValue("Delete Content")]
DeleteContent,
}
Свойство в моем классе User:
public virtual IList<Permission> Permissions { get; set; }
Моя таблица базы данных:
CREATE TABLE dbo.UserPermissions
(
UserPermissionId int IDENTITY(1,1) NOT NULL,
UserId int NOT NULL,
PermissionName varchar (50) NOT NULL,
CONSTRAINT PK_UserPermissions PRIMARY KEY CLUSTERED (UserPermissionId),
CONSTRAINT FK_UserPermissions_Users FOREIGN KEY (UserId) REFERENCES Users(UserId),
CONSTRAINT U_User_Permission UNIQUE(UserId, PermissionName)
)
Моя попытка сопоставить свойство разрешений моего пользовательского объекта:
HasManyToMany(x => x.Permissions)
.WithParentKeyColumn("UserId")
.WithChildKeyColumn("PermissionName")
.WithTableName("UserPermissions")
.LazyLoad();
Что я делаю не так, что он не может сопоставить разрешение со списком значений перечисления?