I believe this is a common question / problem but have not been able to find a good clean concise answer.
The Problem
How to map entities that appear to have an inheritance relationship:
Company
Supplier
Manufacturer
Customer
However, a Supplier can be a Manufacturer.
or
Person
Doctor
Patient
Employee
Where a Patient can be a Doctor or can be an Employee.
Suggestion: Use Roles
In discussions on the NHibernate forums, the response is often that this is multiple inheritance.
http://forum.hibernate.org/viewtopic.php?t=959076
They solution suggested is to use composition or to use "Roles". However, I cannot find any examples or explanation on how exactly to do that.
"Favor composition over inheritance." Remember that little goodie from class? In this instance I have to agree that you are trying multiple inheritance-- not possible in C# or Java (yet). I, personally, would encourage you to think about re-modeling so you have a Person object and a person has a one-to-many collection of Roles.