public override void AddTableNameConfiguration(EntityConfiguration entityConfiguration) { // Rather than being smart, we're just always configuring the // table name for every entity. var entityType = entityConfiguration.EntityType; var delimitedTableName = CSharpUtilities.DelimitString(AnnotationProvider.For(entityType).TableName); var delimitedSchemaName = CSharpUtilities.DelimitString(AnnotationProvider.For(entityType).Schema); entityConfiguration.FluentApiConfigurations.Add( _configurationFactory.CreateFluentApiConfiguration( true, /* <= hasAttributeEquivalent */ nameof(RelationalEntityTypeBuilderExtensions.ToTable), delimitedTableName, delimitedSchemaName)); entityConfiguration.AttributeConfigurations.Add( _configurationFactory.CreateAttributeConfiguration( nameof(TableAttribute), delimitedTableName, $"{nameof(TableAttribute.Schema)} = {delimitedSchemaName}")); }
/// <summary> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </summary> public virtual void AddSequenceConfigurations() { _sequenceConfigurations = new List <SequenceConfiguration>(); foreach (var sequence in AnnotationProvider.For(Model).Sequences) { var config = _configurationFactory.CreateSequenceConfiguration(); config.NameIdentifier = CSharpUtilities.DelimitString(sequence.Name); if (sequence.ClrType != Sequence.DefaultClrType) { config.TypeIdentifier = CSharpUtilities.GetTypeName(sequence.ClrType); } if (!string.IsNullOrEmpty(sequence.Schema) && AnnotationProvider.For(Model).DefaultSchema != sequence.Schema) { config.SchemaNameIdentifier = CSharpUtilities.DelimitString(sequence.Schema); } if (sequence.StartValue != Sequence.DefaultStartValue) { config.FluentApiConfigurations.Add( _configurationFactory.CreateFluentApiConfiguration( false, nameof(RelationalSequenceBuilder.StartsAt), sequence.StartValue.ToString(CultureInfo.InvariantCulture))); } if (sequence.IncrementBy != Sequence.DefaultIncrementBy) { config.FluentApiConfigurations.Add( _configurationFactory.CreateFluentApiConfiguration( false, nameof(RelationalSequenceBuilder.IncrementsBy), sequence.IncrementBy.ToString(CultureInfo.InvariantCulture))); } if (sequence.MinValue != Sequence.DefaultMinValue) { config.FluentApiConfigurations.Add( _configurationFactory.CreateFluentApiConfiguration( false, nameof(RelationalSequenceBuilder.HasMin), sequence.MinValue?.ToString(CultureInfo.InvariantCulture) ?? "")); } if (sequence.MaxValue != Sequence.DefaultMaxValue) { config.FluentApiConfigurations.Add( _configurationFactory.CreateFluentApiConfiguration( false, nameof(RelationalSequenceBuilder.HasMax), sequence.MaxValue?.ToString(CultureInfo.InvariantCulture) ?? "")); } if (sequence.IsCyclic != Sequence.DefaultIsCyclic) { config.FluentApiConfigurations.Add( _configurationFactory.CreateFluentApiConfiguration( false, nameof(RelationalSequenceBuilder.IsCyclic))); } _sequenceConfigurations.Add(config); } }
public virtual void AddTableNameConfiguration([NotNull] EntityConfiguration entityConfiguration) { Check.NotNull(entityConfiguration, nameof(entityConfiguration)); var entityType = entityConfiguration.EntityType; if (ExtensionsProvider.For(entityType).Schema != null && ExtensionsProvider.For(entityType).Schema != ExtensionsProvider.For(Model).DefaultSchema) { var delimitedTableName = CSharpUtilities.DelimitString(ExtensionsProvider.For(entityType).TableName); var delimitedSchemaName = CSharpUtilities.DelimitString(ExtensionsProvider.For(entityType).Schema); entityConfiguration.FluentApiConfigurations.Add( _configurationFactory.CreateFluentApiConfiguration( /* hasAttributeEquivalent */ true, nameof(RelationalEntityTypeBuilderExtensions.ToTable), delimitedTableName, delimitedSchemaName)); entityConfiguration.AttributeConfigurations.Add( _configurationFactory.CreateAttributeConfiguration( nameof(TableAttribute), delimitedTableName, nameof(TableAttribute.Schema) + " = " + delimitedSchemaName)); } else if (ExtensionsProvider.For(entityType).TableName != null && ExtensionsProvider.For(entityType).TableName != entityType.DisplayName()) { var delimitedTableName = CSharpUtilities.DelimitString(ExtensionsProvider.For(entityType).TableName); entityConfiguration.FluentApiConfigurations.Add( _configurationFactory.CreateFluentApiConfiguration( /* hasAttributeEquivalent */ true, nameof(RelationalEntityTypeBuilderExtensions.ToTable), delimitedTableName)); entityConfiguration.AttributeConfigurations.Add( _configurationFactory.CreateAttributeConfiguration( nameof(TableAttribute), delimitedTableName)); } }