In my case there are three relevant entities: System.User, CRM.Person (name, address, zipcode, etc.), CRM.Manager. A Manager is also a person because he has a name, address, etc. Therefore, I let the Manager inherit from Person. But a Manager also has to be a System.User because he may log in to the application (and a Person or other entities inheriting from Person may not). I know I can let Person inherit from System.User and only give the Manager userroles. But that's a dirty solutions because other entities that derives from Person and can't log in have also the System.User fields. I guess multiple inheritance isn't supported yet, but is there anybody that have a other idea to model this? (Note: I don't want to use a reference from Manager to Person)
I would recommend to use a System.User object for logging in, etc. All other information, i.e. additional profile fields, information for manager or person, should be added by a reference from an additional object to System.User instead of inheriting from System.User.
I don't know if this is possible in your situation?