internal virtual void Add(EntityTypeConfiguration entityTypeConfiguration) { DebugCheck.NotNull(entityTypeConfiguration); EntityTypeConfiguration existingConfiguration; if ((_entityConfigurations.TryGetValue(entityTypeConfiguration.ClrType, out existingConfiguration) && !existingConfiguration.IsReplaceable) || _complexTypeConfigurations.ContainsKey(entityTypeConfiguration.ClrType)) { throw Error.DuplicateStructuralTypeConfiguration(entityTypeConfiguration.ClrType); } if (existingConfiguration != null && existingConfiguration.IsReplaceable) { _entityConfigurations.Remove(existingConfiguration.ClrType); entityTypeConfiguration.ReplaceFrom(existingConfiguration); } else { entityTypeConfiguration.IsReplaceable = false; } _entityConfigurations.Add(entityTypeConfiguration.ClrType, entityTypeConfiguration); }