public EntityTypeConfiguration <TEntityType> Map <TDerived>( Action <EntityMappingConfiguration <TDerived> > derivedTypeMapConfigurationAction) where TDerived : class, TEntityType { Check.NotNull(derivedTypeMapConfigurationAction, "derivedTypeMapConfigurationAction"); var entityMappingConfiguration = new EntityMappingConfiguration <TDerived>(); derivedTypeMapConfigurationAction(entityMappingConfiguration); if (typeof(TDerived) == typeof(TEntityType)) { _entityTypeConfiguration.AddMappingConfiguration( entityMappingConfiguration.EntityMappingConfigurationInstance); } else { _entityTypeConfiguration .AddSubTypeMappingConfiguration( typeof(TDerived), entityMappingConfiguration.EntityMappingConfigurationInstance); } return(this); }
public void Cloning_an_entity_configuration_clones_its_subtype_mapping_information() { var configuration = new EntityTypeConfiguration(typeof(object)); var mappingConfiguration = new EntityMappingConfiguration(); configuration.AddSubTypeMappingConfiguration(typeof(object), mappingConfiguration); var clone = configuration.Clone(); Assert.NotSame(configuration.SubTypeMappingConfigurations, clone.SubTypeMappingConfigurations); Assert.True(clone.SubTypeMappingConfigurations.ContainsKey(typeof(object))); Assert.NotSame(mappingConfiguration, clone.SubTypeMappingConfigurations[typeof(object)]); configuration.AddSubTypeMappingConfiguration(typeof(int), new EntityMappingConfiguration()); Assert.False(clone.SubTypeMappingConfigurations.ContainsKey(typeof(int))); }