Я создаю систему безопасности для создаваемого им программного обеспечения, и я хотел бы знать, как я могу сделать следующее в NHibernate (если это возможно)
Класс учетной записи пользователя:
public class UserAccount
{
public virtual int UserID { get; set; }
public virtual String Username { get; set; }
public virtual Privilege InvoicePrivilege { get; set; }
public virtual Privilege TradePrivilege { get; set; }
}
Класс привилегий:
public class Privilege
{
public virtual bool Read { get; set; }
public virtual bool Write { get; set; }
public virtual bool Delete { get; set; }
public virtual bool Modify { get; set; }
}
У меня будет большое количество этих объектов привилегий (по одному для каждой торгуемой сущности), поэтому в базе данных у меня есть следующие таблицы:
UserAccounts ( UserID , Имя пользователя)
Привилегии ( UserID, PrivilegeType , чтение, запись, изменение, удаление)
Как сопоставить свойство InvoicePrivielge из учетной записи пользователя с привилегией (UserID, "Invoice").
Я мог бы сделать это, используя многие к одному, но я не хочу набор привилегий, я бы предпочел сопоставить его с его свойством.