Thanks for the help. This gets me a little closer but still doesn't solve the problem
The issue here is project manager doesn't have a 'is a' relationship with job. Job, instead, 'has a' project manager. So inheritance isn't appropriate.
My JobEntity is large. I have many fields with prefixes to group them together but its getting cumbersome. I want to simplify the entity by composing it of poco classes.
I've created extension tables (which might help, but will cost me on query complexity). However, with the proposed solution I can't write:
var job = new JobEntity();
job.ProjectManager = new ProjectManager();
Additionally, by inheriting from job the new ProjectManagerEntity is not only semantically incorrect but makes the field complexity problem a little worse. PorjectManager now has all the fields Job does. To be clear, with the proposed solution I CAN, but shouldn't be able to write:
var pm= new ProjectManagerEntity();
pm.BudgetStatus= // budget status is data relevant to a job not a project manager
Other thoughts? Am I missing something?