Я создаю систему безопасности для программного обеспечения, которое я создаю, и я хотел бы знать, как я могу сделать следующее в 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, Username)
привилегии (UserID, PrivilegeType, чтение, запись, изменение, удаление)
Как сопоставить свойство InvoicePrivielge учетной записи пользователя с привилегией (UserID, 'Invoice').
Я мог бы сделать это, используя «многие к одному», но мне не нужен набор привилегий, я бы предпочел сопоставить его с его свойством.