public void Apply_should_sort_unannotated_in_given_order() { var table = new DbTableMetadata(); table.AddColumn("C"); table.AddColumn("Id"); ((IDbConvention<DbTableMetadata>)new ColumnOrderingConvention()).Apply(table, new DbDatabaseMetadata()); Assert.Equal(2, table.Columns.Count); Assert.Equal("C", table.Columns.First().Name); }
public void Apply_should_order_by_annotation_if_given() { var table = new DbTableMetadata(); table.AddColumn("C").SetOrder(2); table.AddColumn("Id").SetOrder(1); ((IDbConvention<DbTableMetadata>)new ColumnOrderingConvention()).Apply(table, new DbDatabaseMetadata()); Assert.Equal(2, table.Columns.Count); Assert.Equal("Id", table.Columns.First().Name); }
public void AddColumn_should_set_properties_and_add_to_columns() { var table = new DbTableMetadata(); var tableColumn = table.AddColumn("Foo"); Assert.NotNull(tableColumn); Assert.Equal("Foo", tableColumn.Name); Assert.True(table.Columns.Contains(tableColumn)); }
public static DbTableColumnMetadata IncludeColumn(DbTableMetadata table, string columnName, bool useExisting) { Contract.Requires(table != null); Contract.Requires(columnName != null); var existingColumn = table.Columns.SingleOrDefault(c => string.Equals(c.Name, columnName, StringComparison.Ordinal)); DbTableColumnMetadata column = null; if (existingColumn == null) { column = table.AddColumn(columnName); } else if (!useExisting && !existingColumn.IsPrimaryKeyColumn) { column = table.AddColumn(columnName); } else { column = existingColumn; } return AddColumn(table, column); }
private void GenerateIndependentForeignKeyColumns( EdmEntityType principalEntityType, EdmEntityType dependentEntityType, DbAssociationSetMapping associationSetMapping, DbAssociationEndMapping associationEndMapping, DbTableMetadata dependentTable, DbForeignKeyConstraintMetadata foreignKeyConstraint, bool isPrimaryKeyColumn, EdmNavigationProperty principalNavigationProperty) { //Contract.Requires(principalEntityType != null); //Contract.Requires(associationEndMapping != null); //Contract.Requires(dependentTable != null); //Contract.Requires(foreignKeyConstraint != null); foreach (var property in principalEntityType.KeyProperties()) { var foreignKeyColumn = dependentTable.AddColumn( ((principalNavigationProperty != null) ? principalNavigationProperty.Name : principalEntityType.Name) + "_" + property.Name); MapTableColumn(property, foreignKeyColumn, false, isPrimaryKeyColumn); foreignKeyColumn.IsNullable = (associationEndMapping.AssociationEnd.IsOptional() || (associationEndMapping.AssociationEnd.IsRequired() && dependentEntityType.BaseType != null)); foreignKeyColumn.StoreGeneratedPattern = DbStoreGeneratedPattern.None; foreignKeyConstraint.DependentColumns.Add(foreignKeyColumn); associationEndMapping.PropertyMappings.Add( new DbEdmPropertyMapping { Column = foreignKeyColumn, PropertyPath = new[] { property } }); if (foreignKeyColumn.IsNullable) { associationSetMapping.ColumnConditions.Add( new DbColumnCondition { Column = foreignKeyColumn, IsNull = false }); } } }