public static void SetDefaultDiscriminator( this DbEntityTypeMappingFragment entityTypeMappingFragment, DbTableColumnMetadata discriminator) { //Contract.Requires(entityTypeMappingFragment != null); entityTypeMappingFragment.Annotations.SetAnnotation(DefaultDiscriminatorAnnotation, discriminator); }
public static DbTableColumnMetadata IncludeColumn( DbTableMetadata table, DbTableColumnMetadata templateColumn, bool useExisting) { Contract.Requires(table != null); Contract.Requires(templateColumn != null); var existingColumn = table.Columns.SingleOrDefault(c => string.Equals(c.Name, templateColumn.Name, StringComparison.Ordinal)); if (existingColumn == null) { templateColumn = templateColumn.Clone(); } else if (!useExisting && !existingColumn.IsPrimaryKeyColumn) { templateColumn = templateColumn.Clone(); } else { templateColumn = existingColumn; } return AddColumn(table, templateColumn); }
public void Initialize_should_initialize_facets() { var tableColumn = new DbTableColumnMetadata(); tableColumn.Initialize(); Assert.NotNull(tableColumn.Facets); }
public void Apply_should_put_key_columns_first() { var tableColumn = new DbTableColumnMetadata { TypeName = "Foo" }; ((IDbConvention<DbTableColumnMetadata>)new ColumnTypeCasingConvention()).Apply(tableColumn, new DbDatabaseMetadata()); Assert.Equal("foo", tableColumn.TypeName); }
private ColumnMapping FindOrCreateColumnMapping(DbTableColumnMetadata column) { var columnMapping = _columns.SingleOrDefault(c => c.Column == column); if (columnMapping == null) { columnMapping = new ColumnMapping(column); _columns.Add(columnMapping); } return columnMapping; }
public void Can_get_and_set_can_override_annotation() { var tableColumn = new DbTableColumnMetadata(); tableColumn.SetAllowOverride(true); Assert.True(tableColumn.GetAllowOverride()); tableColumn.SetAllowOverride(false); Assert.False(tableColumn.GetAllowOverride()); }
public static DbTableColumnMetadata RemoveColumn(DbTableMetadata table, DbTableColumnMetadata column) { Contract.Requires(table != null); Contract.Requires(column != null); if (!column.IsPrimaryKeyColumn) { table.Columns.Remove(column); } return column; }
public static DbTableColumnMetadata AddColumn(this DbTableMetadata table, string name) { //Contract.Requires(table != null); //Contract.Requires(!string.IsNullOrWhiteSpace(name)); var tableColumn = new DbTableColumnMetadata { Name = table.Columns.UniquifyName(name) }.Initialize(); tableColumn.SetPreferredName(name); table.Columns.Add(tableColumn); return tableColumn; }
public void Configure_should_rename_columns_when_right_keys_configured() { var database = new DbDatabaseMetadata().Initialize(); var associationSetMapping = new DbAssociationSetMapping().Initialize(); var column = new DbTableColumnMetadata(); associationSetMapping.TargetEndMapping.PropertyMappings.Add(new DbEdmPropertyMapping { Column = column }); var manyToManyAssociationMappingConfiguration = new ManyToManyAssociationMappingConfiguration(); manyToManyAssociationMappingConfiguration.MapRightKey("NewName"); manyToManyAssociationMappingConfiguration.Configure(associationSetMapping, database); Assert.Equal("NewName", column.Name); }
private static DbTableColumnMetadata AddColumn(DbTableMetadata table, DbTableColumnMetadata column) { Contract.Requires(table != null); Contract.Requires(column != null); if (!table.Columns.Contains(column)) { var configuration = column.GetConfiguration() as PrimitivePropertyConfiguration; if ((configuration == null) || string.IsNullOrWhiteSpace(configuration.ColumnName)) { var preferredName = column.GetPreferredName() ?? column.Name; column.SetUnpreferredUniqueName(column.Name); column.Name = table.Columns.UniquifyName(preferredName); } table.Columns.Add(column); } return column; }
protected void MapTableColumn( EdmProperty property, DbTableColumnMetadata tableColumnMetadata, bool isInstancePropertyOnDerivedType, bool isKeyProperty = false) { Contract.Requires(property != null); Contract.Requires(tableColumnMetadata != null); var storeTypeUsage = _providerManifest.GetStoreType(GetEdmTypeUsage(property.PropertyType)); tableColumnMetadata.TypeName = storeTypeUsage.EdmType.Name; tableColumnMetadata.IsPrimaryKeyColumn = isKeyProperty; if (isInstancePropertyOnDerivedType) { tableColumnMetadata.IsNullable = true; } else if (property.PropertyType.IsNullable != null) { tableColumnMetadata.IsNullable = property.PropertyType.IsNullable.Value; } if (tableColumnMetadata.IsPrimaryKeyColumn) { tableColumnMetadata.IsNullable = false; } var storeGeneratedPattern = property.GetStoreGeneratedPattern(); if (storeGeneratedPattern != null) { tableColumnMetadata.StoreGeneratedPattern = storeGeneratedPattern.Value; } MapPrimitivePropertyFacets( property.PropertyType.PrimitiveTypeFacets, tableColumnMetadata.Facets, storeTypeUsage); }
internal void WritePropertyElementHeader(DbTableColumnMetadata property) { _xmlWriter.WriteStartElement(SsdlConstants.Element_Property); _xmlWriter.WriteAttributeString(SsdlConstants.Attribute_Name, property.Name); _xmlWriter.WriteAttributeString(SsdlConstants.Attribute_Type, property.TypeName); WritePropertyTypeFacets(property); }
public static void AddNullabilityCondition( this DbEntityTypeMappingFragment entityTypeMapppingFragment, DbTableColumnMetadata column, bool isNull) { //Contract.Requires(entityTypeMapppingFragment != null); //Contract.Requires(column != null); entityTypeMapppingFragment .ColumnConditions .Add( new DbColumnCondition { Column = column, IsNull = isNull }); }
private void WritePropertyTypeFacets(DbTableColumnMetadata property) { if (property.Facets != null) { foreach (var facet in GetEnumerableFacetValueFromPrimitiveTypeFacets(property.Facets)) { _xmlWriter.WriteAttributeString(facet.Key, facet.Value); } } if (property.StoreGeneratedPattern != DbStoreGeneratedPattern.None) { _xmlWriter.WriteAttributeString( SsdlConstants.Attribute_StoreGeneratedPattern, property.StoreGeneratedPattern == DbStoreGeneratedPattern.Computed ? CsdlConstants.Value_Computed : CsdlConstants.Value_Identity); } _xmlWriter.WriteAttributeString( SsdlConstants.Attribute_Nullable, GetLowerCaseStringFromBoolValue(property.IsNullable)); }
private static IEnumerable<DbForeignKeyConstraintMetadata> FindAllForeignKeyConstraintsForColumn( DbTableMetadata fromTable, DbTableMetadata toTable, DbTableColumnMetadata column) { return fromTable .ForeignKeyConstraints .Where( fk => fk.DependentColumns.Contains(column) && fk.DependentColumns.All( c => toTable.Columns.Any( nc => string.Equals(nc.Name, c.Name, StringComparison.Ordinal) || string.Equals(nc.GetUnpreferredUniqueName(), c.Name, StringComparison.Ordinal)))); }
private void WriteScalarPropertyElement(EdmProperty property, DbTableColumnMetadata column) { _xmlWriter.WriteStartElement(MslConstants.Element_ScalarProperty); _xmlWriter.WriteAttributeString(MslConstants.Attribute_Name, property.Name); _xmlWriter.WriteAttributeString(MslConstants.Attribute_ColumnName, column.Name); _xmlWriter.WriteEndElement(); }
public static DbTableColumnMetadata MoveColumnAndAnyConstraints( DbTableMetadata fromTable, DbTableMetadata toTable, DbTableColumnMetadata column, bool useExisting) { Contract.Requires(fromTable != null); Contract.Requires(toTable != null); Contract.Requires(column != null); var movedColumn = column; if (fromTable != toTable) { movedColumn = TablePrimitiveOperations.IncludeColumn(toTable, column, useExisting); TablePrimitiveOperations.RemoveColumn(fromTable, column); ForeignKeyPrimitiveOperations.MoveAllForeignKeyConstraintsForColumn(fromTable, toTable, column); } return movedColumn; }
internal void WriteDelaredKeyPropertyRefElement(DbTableColumnMetadata property) { _xmlWriter.WriteStartElement(SsdlConstants.Element_PropertyRef); _xmlWriter.WriteAttributeString(SsdlConstants.Attribute_Name, property.Name); _xmlWriter.WriteEndElement(); }
protected virtual void VisitDbTableColumnMetadata(DbTableColumnMetadata item) { VisitDbColumnMetadata(item); }
public static void RemoveAllForeignKeyConstraintsForColumn(DbTableMetadata table, DbTableColumnMetadata column) { Contract.Requires(table != null); Contract.Requires(column != null); table.ForeignKeyConstraints .Where(fk => fk.DependentColumns.Contains(column)) .ToArray() .Each(fk => table.ForeignKeyConstraints.Remove(fk)); }
/// <summary> /// Move any FK constraints that are now completely in newTable and used to refer to oldColumn /// </summary> public static void MoveAllForeignKeyConstraintsForColumn( DbTableMetadata fromTable, DbTableMetadata toTable, DbTableColumnMetadata column) { Contract.Requires(fromTable != null); Contract.Requires(toTable != null); Contract.Requires(column != null); FindAllForeignKeyConstraintsForColumn(fromTable, toTable, column) .ToArray() .Each(fk => { MoveForeignKeyConstraint(fromTable, toTable, fk); }); }
public static void CopyAllForeignKeyConstraintsForColumn( DbDatabaseMetadata database, DbTableMetadata fromTable, DbTableMetadata toTable, DbTableColumnMetadata column) { Contract.Requires(fromTable != null); Contract.Requires(toTable != null); Contract.Requires(column != null); FindAllForeignKeyConstraintsForColumn(fromTable, toTable, column) .ToArray() .Each(fk => CopyForeignKeyConstraint(database, toTable, fk)); }
public static void AddDiscriminatorCondition( this DbEntityTypeMappingFragment entityTypeMapppingFragment, DbTableColumnMetadata discriminatorColumn, object value) { //Contract.Requires(entityTypeMapppingFragment != null); //Contract.Requires(discriminatorColumn != null); //Contract.Requires(value != null); entityTypeMapppingFragment .ColumnConditions .Add( new DbColumnCondition { Column = discriminatorColumn, Value = value }); }
public static DbTableColumnMetadata CopyColumnAndAnyConstraints( DbDatabaseMetadata database, DbTableMetadata fromTable, DbTableMetadata toTable, DbTableColumnMetadata column, bool useExisting, bool allowPkConstraintCopy) { Contract.Requires(fromTable != null); Contract.Requires(toTable != null); Contract.Requires(column != null); var movedColumn = column; if (fromTable != toTable) { movedColumn = TablePrimitiveOperations.IncludeColumn(toTable, column, useExisting); if (allowPkConstraintCopy || !movedColumn.IsPrimaryKeyColumn) { ForeignKeyPrimitiveOperations.CopyAllForeignKeyConstraintsForColumn( database, fromTable, toTable, column); } } return movedColumn; }
public void InitializeDefaultDiscriminatorColumn(DbTableColumnMetadata column) { var typeUsage = _providerManifest.GetStoreType( TypeUsage.CreateStringTypeUsage( PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String), isUnicode: true, isFixedLength: false, maxLength: DiscriminatorLength)); column.TypeName = typeUsage.EdmType.Name; column.Facets.MaxLength = DiscriminatorLength; column.IsNullable = false; }
protected override void VisitDbTableColumnMetadata(DbTableColumnMetadata item) { _schemaWriter.WritePropertyElementHeader(item); base.VisitDbTableColumnMetadata(item); _schemaWriter.WriteEndElement(); }
public ColumnMapping(DbTableColumnMetadata column) { //Contract.Requires(column != null); _column = column; _propertyMappings = new List<PropertyMappingSpecification>(); }