I have the following supertype/subtype pattern at the database level:
MotherTable
- MainDiscriminator
- CommonAttribute1
- CommonAttribute2
ChildTable1
- MainDiscriminator (value: 1)
- AdditionalAttributes...
ChildTable2
- MainDiscriminator (value: 2)
- AdditionalAttributes...
Until this point, pretty typical implementation configuration for mapping:
Map<ChildTable1>(m => m.Requires("MainDiscriminator").HasValue("1"));
Map<ChildTable2>(m => m.Requires("MainDiscriminator").HasValue("2"));
Now where I am having issues is configuring second level of inheritances; ChildTable2 has grand children with a different discriminator that MotherTable knows nothing about. Would look like this
ChildTable2
- MainDiscriminator (value: 2)
- AdditionalAttributes...
- SecondaryDiscriminator
GrandChild1
- SecondaryDiscriminator (value: 1)
- AdditionalAttributes...
GrandChild2
- SecondaryDiscriminator (value: 2)
- AdditionalAttributes...
I tried various approaches, but I either run into misconfiguration stating that two entities are being mapped to same row or EF tries to enter a null value to a non existing column named "Discriminator" in MotherTable.
One of the avenue that seemed to allow to workaround this, was a DbInterceptor removing those unwanted "Discriminator" column inserts/updates/deletes, but I would rather not go there.
Any ideas/thoughts would be appreciated.

