本文整理汇总了C#中System.Data.Entity.Edm.Db.DbTableMetadata类的典型用法代码示例。如果您正苦于以下问题:C# DbTableMetadata类的具体用法?C# DbTableMetadata怎么用?C# DbTableMetadata使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
DbTableMetadata类属于System.Data.Entity.Edm.Db命名空间,在下文中一共展示了DbTableMetadata类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Apply_should_introduce_cascade_delete_on_constraints
public void Apply_should_introduce_cascade_delete_on_constraints()
{
var databaseMapping
= new DbDatabaseMapping()
.Initialize(new EdmModel().Initialize(), new DbDatabaseMetadata().Initialize());
var foreignKeyConstraint = new DbForeignKeyConstraintMetadata();
Assert.Equal(DbOperationAction.None, foreignKeyConstraint.DeleteAction);
var table = new DbTableMetadata();
table.ForeignKeyConstraints.Add(foreignKeyConstraint);
var associationType = new EdmAssociationType().Initialize();
associationType.SourceEnd.EndKind = EdmAssociationEndKind.Many;
associationType.SourceEnd.EntityType = new EdmEntityType();
associationType.TargetEnd.EndKind = EdmAssociationEndKind.Many;
associationType.TargetEnd.EntityType = new EdmEntityType();
var associationSetMapping = databaseMapping.AddAssociationSetMapping(new EdmAssociationSet { ElementType = associationType });
associationSetMapping.Table = table;
((IDbMappingConvention)new ManyToManyCascadeDeleteConvention()).Apply(databaseMapping);
Assert.Equal(DbOperationAction.Cascade, foreignKeyConstraint.DeleteAction);
}
示例2: WriteForeignKeyConstraintElement
internal void WriteForeignKeyConstraintElement(
DbTableMetadata dbTableMetadata, DbForeignKeyConstraintMetadata tableFKConstraint)
{
_xmlWriter.WriteStartElement(SsdlConstants.Element_Association);
_xmlWriter.WriteAttributeString(SsdlConstants.Attribute_Name, tableFKConstraint.Name);
var multiplicity = DetermineMultiplicity(dbTableMetadata, tableFKConstraint);
// If the FK is a Self Ref, then we need to append a suffix to the second role name
var roleNames = DbModelSsdlHelper.GetRoleNamePair(tableFKConstraint.PrincipalTable, dbTableMetadata);
// End
WriteAssociationEndElementHeader(roleNames[0], tableFKConstraint.PrincipalTable, multiplicity.Key);
if (tableFKConstraint.DeleteAction
!= DbOperationAction.None)
{
WriteOperationActionElement(SsdlConstants.Element_OnDelete, tableFKConstraint.DeleteAction);
}
WriteEndElement();
WriteAssociationEndElementHeader(roleNames[1], dbTableMetadata, multiplicity.Value);
WriteEndElement();
// ReferentialConstraint
WriteReferentialConstraintElementHeader();
WriteReferentialConstraintRoleElement(
SsdlConstants.Element_PrincipalRole, roleNames[0], tableFKConstraint.PrincipalTable.KeyColumns);
WriteReferentialConstraintRoleElement(
SsdlConstants.Element_DependentRole, roleNames[1], tableFKConstraint.DependentColumns);
WriteEndElement();
WriteEndElement();
}
示例3: Configure_should_update_table_name_when_base_type_is_null
public void Configure_should_update_table_name_when_base_type_is_null()
{
var entityMappingConfiguration = new EntityMappingConfiguration
{
TableName = new DatabaseName("Foo")
};
var entityTypeMapping = new DbEntityTypeMapping
{
EntityType = new EdmEntityType()
};
var table = new DbTableMetadata
{
Name = "foo"
};
entityTypeMapping.TypeMappingFragments.Add(
new DbEntityTypeMappingFragment
{
Table = table
});
var databaseMapping =
new DbDatabaseMapping().Initialize(new EdmModel().Initialize(), new DbDatabaseMetadata().Initialize());
databaseMapping.Database.AddTable("foo");
entityMappingConfiguration.Configure(
databaseMapping, ProviderRegistry.Sql2008_ProviderManifest, entityTypeMapping.EntityType, ref entityTypeMapping, false, 0, 1);
Assert.Equal("Foo", table.GetTableName().Name);
}
示例4: WriteAssociationSetEndElement
internal void WriteAssociationSetEndElement(DbTableMetadata end, string roleName)
{
_xmlWriter.WriteStartElement(SsdlConstants.Element_End);
_xmlWriter.WriteAttributeString(SsdlConstants.Attribute_Role, roleName);
_xmlWriter.WriteAttributeString(SsdlConstants.Attribute_EntitySet, end.Name);
_xmlWriter.WriteEndElement();
}
示例5: IncludeColumn
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);
}
示例6: TableMapping
public TableMapping(DbTableMetadata table)
{
//Contract.Requires(table != null);
_table = table;
_entityTypes = new SortedEntityTypeIndex();
_columns = new List<ColumnMapping>();
}
示例7: GetRoleNamePair
/// <summary>
/// Return role name pair
/// </summary>
/// <param name="firstTable"> </param>
/// <param name="secondTable"> </param>
/// <returns> </returns>
internal static string[] GetRoleNamePair(DbTableMetadata firstTable, DbTableMetadata secondTable)
{
return new[]
{
firstTable.Name,
firstTable != secondTable ? secondTable.Name : secondTable.Name + selfRefRoleNameSuffix
};
}
示例8: VisitKeyColumns
protected override void VisitKeyColumns(DbTableMetadata item, IEnumerable<DbTableColumnMetadata> keyColumns)
{
_schemaWriter.WriteDelaredKeyPropertiesElementHeader();
foreach (var keyColumn in keyColumns)
{
_schemaWriter.WriteDelaredKeyPropertyRefElement(keyColumn);
}
_schemaWriter.WriteEndElement();
}
示例9: Apply_should_ignore_current_table
public void Apply_should_ignore_current_table()
{
var database = new DbDatabaseMetadata().Initialize();
var table = new DbTableMetadata { DatabaseIdentifier = "Customers" };
database.Schemas.Single().Tables.Add(table);
((IDbConvention<DbTableMetadata>)new PluralizingTableNameConvention()).Apply(table, database);
Assert.Equal("Customers", table.DatabaseIdentifier);
}
示例10: AddColumn_should_set_properties_and_add_to_columns
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));
}
示例11: Apply_should_order_by_annotation_if_given
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);
}
示例12: Apply_should_sort_unannotated_in_given_order
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);
}
示例13: Apply_should_uniquify_names
public void Apply_should_uniquify_names()
{
var database = new DbDatabaseMetadata().Initialize();
var tableA = new DbTableMetadata { DatabaseIdentifier = "Customers" };
var tableB = new DbTableMetadata { DatabaseIdentifier = "Customer" };
database.Schemas.Single().Tables.Add(tableA);
database.Schemas.Single().Tables.Add(tableB);
((IDbConvention<DbTableMetadata>)new PluralizingTableNameConvention()).Apply(tableB, database);
Assert.Equal("Customers1", tableB.DatabaseIdentifier);
}
示例14: Apply_should_ignored_configured_tables
public void Apply_should_ignored_configured_tables()
{
var database = new DbDatabaseMetadata().Initialize();
var table = new DbTableMetadata { DatabaseIdentifier = "Customer" };
table.SetTableName(new DatabaseName("Foo"));
database.Schemas.Single().Tables.Add(table);
((IDbConvention<DbTableMetadata>)new PluralizingTableNameConvention()).Apply(table, database);
Assert.Equal("Customer", table.DatabaseIdentifier);
Assert.Equal("Foo", table.GetTableName().Name);
}
示例15: RemoveColumn
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;
}