NHibernate. Уникальность записей - PullRequest
0 голосов
/ 01 февраля 2012

У меня есть класс

abstract class Entity<T> where T : Entity<T>
{
    public virtual Guid ID { get; private set; }
}

все мои сущности унаследованы от него. В случае сущности employee невозможно иметь двух сотрудников с одинаковым паспортом и другими документами, удостоверяющими личность.

Почему я не могу поместить двух сотрудников с разными surrogate keys и одинаковыми passport number в базу данных?

Есть ли какие-либо ограничения в отображении?

Спасибо!

1 Ответ

1 голос
/ 01 февраля 2012

Вы можете добавить ограничение Unique для паспорта

, если вы используете свободно:

mapping.Id( employee => employee.Id);
mapping.Map(employee  => employee.passport ).Unique(); 

В вашем домене, если все сущности наследуются от сущностей, все они будут использовать суррогатные ключи, поэтому вам придется обрабатывать любые другие ограничения

...