This type of mapping is supported in EDM; however, when the abstract base class in included in the model (via the
DbSet<Base> property), for some reason, Code First splits the primary key and foreign key into two columns.

One workaround is to exclude Base from the model using modelBuilder.Ignore<Base>()

Unless I am missing something this appears to be by design. If using the Key of Sub1 as Foreign Key the constraint would require the Ids from Sub1s to match those from Sub2s. That conflicts with DbSet<Base> which implies the Ids for venders and customers
should be different. Please reactivate if you think otherwise.

"If using the Key of Sub1 as Foreign Key the constraint would require the Ids from Sub1s to match those from Sub2s. That conflicts with DbSet<Base> which implies the Ids for venders and customers should be different."