This is one of the “Please Don't Do This” scenarios.
You think about it strictly in terms of tables, not in object-oriented terms.
A private customer is a specific customer. He never changes. Now his status can change, or he can acquire additional AccountProperties, but he never moves from being one of the types (Client) to another type (AccountCustomer). It just doesn’t make sense conceptually (the common fruit does not turn into an apple, does it? It starts like an apple with one status and ends like an apple with a new status), and this is certainly not possible in object-oriented .NET programming ... which would make impossible in ORM, like EF.
Therefore, please consider a reasonable way to conceptualize this, which will lead to a reasonable way to express it in object-oriented terms, which will lead to a reasonable solution to EF.
source share