Mapping discriminator columns
You cannot map discriminator columns.
Problem
When you have a class hierarchy that you want to map to a database table using the Table per class hierarchy/Single table inheritance pattern, this table will make use of a discriminator column to figure out the class that each record refers to; this is because the same table will hold records for any of the derived classes of the hierarchy. You may be tempted to add a property for this discriminator column, but you will not succeed, because discriminator columns cannot be mapped.
How to solve it…
You simply cannot map the discriminator column as a property, because doing so might cause the type of the stored record to change from one class to another, and Entity Framework does not let that happen. You can give it any name you want and also give specific values for each subclass, but that's as far as it goes:
protected override void OnModelCreating( DbModelBuilder modelBuilder) { //register a string discriminator...