I am having major problems figuring out how I should model this relationship hierarchy, and was hoping someone could make a suggestion, as well as point out any special config I would have to do with FluentAPI.
Basically, I am creating a customer management system. I want the base object to be a "Person", which will hold an id, name, contact info, etc.
Next, I want to have the concept of a "Customer", which is a Person in the system with some other data, such as a CustomerNumber string slapped on it.
Then, I want each Person to have a collection of other People that are "Relatives/Friends". It also needs to specify the type of relationship (brother, father, etc).
So basically, it boils down the goal of having a huge database of People - any of which may or may not be a Customer, and any of which can be set up as Relatives/Friends of any other Person/Customer in the entire system. A Person can have an unlimited number of relatives/friends, and can be a relative/friend of any number of other people (or none at all).
I hope I have explained that well enough. I have modeled this in several different ways (from using inheritance, to just directly modeling a Join Table with foreign keys) and so far nothing ends up with the correct database structure when I generate the model.