Свободное сопоставление "один к одному" NHibernate с синтетическими ключами

У меня есть две таблицы

tblPart
(
    partId,
    subpartId UNIQUE NULL
)

tblSubpart
(
    subpartId
)

Таким образом, я могу иметь только один или один подпарам, связанный с частью в одно и то же время.

Я пытаюсь отобразить это как

ClassMap<Part>
{
    HasOne(x=>x.Subpart);
}

и соглашение перезаписывает внешний ключ, поэтому вместо partId он использует subpartId.

однако созданные объявления объявлений

subpart.partId

в запрос, который не существует.

Что я здесь делаю неправильно?