Did anyone ever tried mapping an inherited property? Because I would be glad to hear that just works and that I am making a mistake somewhere, as I am getting the following error:
“The property ‘UserName’ is not a declared property on type ‘Advertiser’. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property. “
My model looks like this:
abstract class Entity { public int Id {get; set; }}
abstract class User : Entity { public string UserName {get; set;} }
sealed class Advertiser : User { }
My AdvertisementConfiguration class looks like this:
class AdvertiserConfiguration : EntityTypeConfiguration<Advertiser>
{
public AdvertiserConfiguration()
{
// the following line indirectly causes an InvalidOperationException:
Property( x => x.UserName ).HasMaxLength(50);
}
}
If I change the Advertiser class so that it does not inherit from User (and pull the UserName property down) then everything works just fine.
You can (and in this case must) define a mapping for an abstract type:
And then add it to the model builder configurations of course:
Useris an entity – abstract, but still an entity with all mapping options.