У меня есть два теоретических объекты домена:Один-к-одному с NHibernate/Использование Entity как ПК
общественный класс Person { публичных виртуальный ИНТ Id {получить; частный набор; }}
public class PersonMap : ClassMap<Person>
{
public PersonMap() { Id(x => x.Id); }
}
public class DriversLicense
{
public virtual Person Person { get; set; }
public virtual string State { get; set; }
}
public class DriversLicenseMap : ClassMap<DriversLicense>
{
public DriversLicenseMap()
{
References(x => x.Person);
Map(x => x.State);
}
}
Где объект Человек должен быть использован в качестве ПК по DriversLicense. Я не хочу, чтобы объект Person имел какие-либо знания о DriversLicense, поэтому отношения поддерживаются строго в классе DriversLicense. На одного человека есть ровно один водитель.
Когда установка таким образом я получаю следующее исключение:
System.Xml.Schema.XmlSchemaValidationException: Элемент 'класс' в пространстве имен 'урна: NHibernate-отображение-2,2' имеет недействительный дочерний элемент 'property' в namespace 'urn: nhibernate-mapping-2.2'. Список ожидаемых элементов: 'meta, jcs-cache, cache, id, composite-id' in namespace 'urn: nhibernate-mapping-2.2'.
Добавление свойства Id к типу DriversLicense устраняет проблему.
Есть ли способ использовать самого Лица в качестве первичного ключа в таблице DriversLicense, чтобы базовая таблица просто использовала Person.Id для первичного ключа?