void IMetadataBuilder.BuildEntityMetadata(EntityMetadata metadata, ClassBuilder entityBuilder) { var attr = entityBuilder.AddAttribute(WellKnownTypes.LinqToDB.Mapping.TableAttribute); if (metadata.Name != null) { // always generate table name when it is provided, even if it match class name // otherwise generated code will be refactoring-unfriendly (will break on class rename) // note that rename could happen not only as user's action in generated code, but also during code // generation to resolve naming conflicts with other members/types attr.Parameter(_builder.Constant(metadata.Name.Value.Name, true)); if (metadata.Name.Value.Schema != null) { attr.Parameter(WellKnownTypes.LinqToDB.Mapping.TableAttribute_Schema, _builder.Constant(metadata.Name.Value.Schema, true)); } if (metadata.Name.Value.Database != null) { attr.Parameter(WellKnownTypes.LinqToDB.Mapping.TableAttribute_Database, _builder.Constant(metadata.Name.Value.Database, true)); } if (metadata.Name.Value.Server != null) { attr.Parameter(WellKnownTypes.LinqToDB.Mapping.TableAttribute_Server, _builder.Constant(metadata.Name.Value.Server, true)); } } if (metadata.IsView) { attr.Parameter(WellKnownTypes.LinqToDB.Mapping.TableAttribute_IsView, _builder.Constant(true, true)); } if (metadata.Configuration != null) { attr.Parameter(WellKnownTypes.LinqToDB.Mapping.TableAttribute_Configuration, _builder.Constant(metadata.Configuration, true)); } if (!metadata.IsColumnAttributeRequired) { attr.Parameter(WellKnownTypes.LinqToDB.Mapping.TableAttribute_IsColumnAttributeRequired, _builder.Constant(false, true)); } if (metadata.IsTemporary) { attr.Parameter(WellKnownTypes.LinqToDB.Mapping.TableAttribute_IsTemporary, _builder.Constant(true, true)); } if (metadata.TableOptions != TableOptions.NotSet) { attr.Parameter(WellKnownTypes.LinqToDB.Mapping.TableAttribute_TableOptions, _builder.Constant(metadata.TableOptions, true)); } }