The error occurs for EF 4.3.1 and earlier, but not for EF 4.4 and EF 5.0. (EF 4.4 is actually EF 5.0, but with .NET 4.0 as the target platform.)
BUT: An error occurs only if you use abstract classes as objects in your model, this means
you either have a DbSet for them in your context e.g.
public DbSet<BaseEntityTestX> BaseEntityTestXs { get; set; }
or you have a Fluent mapping for BaseEntityTestX , some modelBuilder.Entity<BaseEntityTestX>()... stuff
or you use one of BaseEntityTestX as a navigation property in another (specific) object type
Do you need any of this?
Having a DbSet<BaseEntityTestX> in your context only makes sense if you really want to query one of the abstract objects, for example:
List<BaseEntityTest> list = context.BaseEntityTests .Where(b => b.Info == "abc").ToList();
The result is, of course, a list of specific objects that inherit from BaseEntityTest , but it can be a combination of different types, such as some A and some B s. Do you need such requests? Or do you want to request only some of the specific objects:
List<A> list = context.As .Where(b => b.Info == "abc").ToList();
In the latter case, you do not need DbSet for abstract base classes, and you do not need inheritance matching. You can simply remove the DbSet<BaseEntityTestX> from your context class and remove the TPC mapping, and your error will disappear.
The last point - the presence of a navigation property for one of the abstract objects in another object - does not make sense when comparing TPC. It simply is not suitable for a relational database, because when comparing TPC there is no table for an abstract object, therefore there is no goal to which the relation of foreign keys could relate to a table of a particular class that has the navigation property.
The error will also disappear if you increase the mapping of TPC to base classes:
modelBuilder.Entity<BaseEntityTestX>().Map(m => { m.MapInheritedProperties(); m.ToTable("BaseEntityTestX"); });
But he will create tables for those abstract objects that do not seem to make sense to me.