Сопоставить одно свойство со столбцами в двух таблицах с помощью сопоставления NHibernate Conformist
У меня есть следующий (упрощенный) домен:
public abstract class User
{
public virtual long UserId { get; set; }
public virtual long TenantId { get; set; }
...
}
public class PersonUser : User
{
public virtual string DomainName { get; set; }
public virtual string Username { get; set; }
public virtual string Password { get; set; }
}
public class ClientUser : User
{
...
}
Я использую стратегию отображения таблицы на класс, чтобы User
данные хранятся в Users
Таблица, PersonUser
данные хранятся в Users_PersonUsers
стол и ClientUser
данные хранятся в Users_ClientUsers
Таблица. Я использую новое конформистское отображение, и оно отлично работает! У меня не было никаких проблем.
Тем не менее, у меня есть новое требование: мне нужно создать уникальное ограничение в базе данных, которое гарантирует, что нет двух PersonUser
может иметь то же самое TenantId
, DomainName
, а также Username
сочетание. Это ограничение невозможно, если только Users_PersonUsers
стол также имеет TenantId
колонка. Я не уверен, как лучше подойти к этому.
Я надеялся, что смогу попросить NHibernate сопоставить свойство двум столбцам - по одному в каждой таблице - но, похоже, нет способа сделать это. Я что-то пропустил? Это возможно? Есть ли способ лучше?