How does EF6 TPT inheritance operate under the hood, specifically when adding entities and why does can't I implement it in EF Core? : I am aware that when using TPT inheritance in EF6 you can execute code like:

`WarehouseEmployee wEmp = new WarehouseEmployee();
_context.Employees.Add(wEmp);
`

Where WarehouseEmployee derives from Employee and Employee is an abstract class. Here Employees would be a `DbSet<Employee> Employees` in the derived `DbContext` class.

**Since this example is TPT that means we have a table per type**
So let's say our DB has the tables Employee, WarehouseEmployee, OfficeEmployee

How does EF6 handle, under the hood, adding information to the database in a situation like this? Why can't I use the same line of code in EF Core(2.0)?

Similary, why not with reads?

Why could I not set up my EF Core model classes with inheritance so I could query a derived type?" E.g. `_context.Employees.OfType<WarehouseEmployee>.Where(e=>e.Id == employeeId)`


**Why do I ask this?**

We inherited an application we are converting from desktop to web. Legacy uses TPT and EF6 and management is asking us to use asp.net core 2.0. The database is complex and we'd like to use it as is.
