Вы не можете сделать это так, как вы хотите структурировать свои объекты. Если вы хотите добавить DriversLicense в класс Person, вы можете каскадно удалить его. Но, как вы уже сказали, вы не хотите, чтобы объект person имел какие-либо знания о DriversLicense.
Что вам действительно нужно сделать, так это получить все водительские права, которые содержат этого человека, а затем удалить DriverLicenses с Cascade delete, и это удалит личную запись и лицензию.
(Я не следил за многими изменениями в стеке FNH в последнее время, поэтому возможно, что он был переименован в какой-то момент) Вам нужно изменить свою карту на что-то похожее на:
public DriversLicenseMap()
{
UseCompositeId().WithKeyReference( x => x.Person ).Cascade.All();
Map( x => x.State );
}
Редактировать: с добавлением новой информации вам действительно нужно настроить класс Repository, где вы обрабатываете удаление сотрудника, чтобы выполнить поиск всех водительских прав, у которых есть этот человек. Скорее всего, вам нужно написать выражение Criteria, чтобы справиться с этим.
После того, как вы получите этот список, вы хотите удалить все эти объекты и убедиться, что вы удалили эти удаления, ТО затем удалите запись о человеке и удалите ее.
В ситуации, которую вы объяснили, что нежелание потерянных данных выполнять так, как вы хотите, ограничивало и не хотело иметь класс водительских прав внутри класса person, невозможно обработать каскадным удалением любого типа (насколько мне известно. )