I have an abstract base class Contact that has two subclasses: Person and Company.
I want to have a Customer, Vendor or other types that can be either a Company or a Person (all sharing the same primary key ContactId).
My question is if it's possible to inherit all these types from Contact? If the answer is no, is there another option of utilizing the Contact property from the PK? What's the recommended design for this scenario?
Note that I want an Employee/Customer etc. to also be able to be a User.