本文整理汇总了C#中Index.AddColumns方法的典型用法代码示例。如果您正苦于以下问题:C# Index.AddColumns方法的具体用法?C# Index.AddColumns怎么用?C# Index.AddColumns使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Index
的用法示例。
在下文中一共展示了Index.AddColumns方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateIndexesForForeignKeys
public static void CreateIndexesForForeignKeys(this Configuration configuration,
Func<string, bool> includeTablePredicate)
{
configuration.BuildMappings();
var tables = (ICollection<Table>) tableMappingsProperty.GetValue(configuration, null);
foreach (var table in tables.Where(x => includeTablePredicate(x.Name)))
{
var columnsOfPk = table.HasPrimaryKey ? table.PrimaryKey.Columns.Select(x => x.Name).ToArray() : new string[0];
foreach (var foreignKey in table.ForeignKeyIterator)
{
if (table.HasPrimaryKey)
{
var columnsOfFk = foreignKey.Columns.Select(x => x.Name).ToArray();
var fkHasSameColumnsOfPk = !columnsOfPk.Except(columnsOfFk).Concat(columnsOfFk.Except(columnsOfPk)).Any();
if (fkHasSameColumnsOfPk)
{
continue;
}
}
var idx = new Index();
idx.AddColumns(foreignKey.Columns);
idx.Name = "IX" + foreignKey.Name.Substring(2);
idx.Table = table;
table.AddIndex(idx);
}
}
}