отношение (я думаю), которое вы ищете, одно-ко-многим: пост имеет много PostRevisions.
PostRevision ссылается на один пост.
Поэтому я думаю, что правильное отображение на стороне сообщения будет
HasMany(x=> x.PostRevisions);
и на стороне PostRevision:
References(x=> x.Post).
см. nHibernate docs для более полного взгляда на то, как отобразить эти ассоциации.
Редактировать
Если вы хотите вести историю для каждой ревизии вашего поста, у вас есть 2 варианта:
1. добавьте логическое поле IsHistoric в свой класс Post. Всякий раз, когда публикация пересматривается, вы не изменяете сам объект публикации, а просто помечаете его как «IsHistoric = true» и создаете новый объект публикации, который представляет измененную публикацию. Это метод, который я использую в своем проекте.
2. Создайте класс HistoricPost, который наследуется от Post. Вам не нужно повторять сопоставление, и вы можете использовать отдельную таблицу для этого класса (стратегия «таблица на подкласс»).
см. здесь для получения более подробной информации.
Я думаю вы также можете указать другой столбец Id для дочернего класса, используя Id(x => x.SomeOtherId);
в отображении 'HistoricPost'. Хотя я не пробовал, поэтому я не уверен на 100%.