本文整理汇总了C#中ITable.AddKey方法的典型用法代码示例。如果您正苦于以下问题:C# ITable.AddKey方法的具体用法?C# ITable.AddKey怎么用?C# ITable.AddKey使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ITable
的用法示例。
在下文中一共展示了ITable.AddKey方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateForeignKey
private static Key CreateForeignKey(MappingSet set, ITable primaryTable, ITable foreignTable)
{
var foreignKey = new Key(GetNextKeyName("FK_" + primaryTable.Name + "_" + foreignTable.Name, set), DatabaseKeyType.Foreign);
var primaryKey = primaryTable.FirstPrimaryKey;
foreignKey.ReferencedKey = primaryKey;
foreignTable.AddKey(foreignKey);
// Create the columns for the foreign keys
foreach (var column in primaryKey.Columns)
{
var newColumn = CloneColumn(primaryTable, foreignTable, column, "Foreign_");
foreignKey.AddColumn(newColumn.Name);
}
return foreignKey;
}
示例2: GetKeys
private void GetKeys(ITable table)
{
DataRow[] keyRows = connector.Indexes.Select(string.Format("TABLE_NAME = '{0}' AND TABLE_SCHEMA = '{1}'", table.Name.Replace("'", "''"), table.Schema));
for (int i = 0; i < keyRows.Length; i++)
{
DataRow keyRow = keyRows[i];
DatabaseKeyType keyType;
string indexKeyType = keyRow["CONSTRAINT_TYPE"].ToString();
if (indexKeyType == "PRIMARY KEY")
{
keyType = DatabaseKeyType.Primary;
}
else if (indexKeyType == "UNIQUE")
{
keyType = DatabaseKeyType.Unique;
}
else
{
continue;
}
Key key = new Key
{
Name = keyRow["INDEX_NAME"].ToString(),
IsUserDefined = false,
Keytype = keyType,
Parent = table,
IsUnique = true
};
// Fill Columns
List<DataRow> keyColumnRows = new List<DataRow>();
keyColumnRows.AddRange(connector.Columns.Select(string.Format("TABLE_NAME = '{0}' AND TABLE_SCHEMA = '{1}' AND COLUMN_NAME = '{2}'", table.Name.Replace("'", "''"), table.Schema, keyRow["COLUMN_NAME"])));
while ((i < keyRows.Length - 1) && (string)keyRows[i + 1]["TABLE_NAME"] == table.Name && (string)keyRows[i + 1]["INDEX_NAME"] == (string)keyRow["INDEX_NAME"])
{
i++;
keyRow = keyRows[i];
keyColumnRows.AddRange(connector.Columns.Select(string.Format("TABLE_NAME = '{0}' AND TABLE_SCHEMA = '{1}' AND COLUMN_NAME = '{2}'", table.Name.Replace("'", "''"), table.Schema, keyRow["COLUMN_NAME"])));
}
// Fill Columns
foreach (DataRow keyColumnRow in keyColumnRows)
{
key.AddColumn((string)keyColumnRow["COLUMN_NAME"]);
}
key.ResetDefaults();
table.AddKey(key);
}
}
示例3: GetKeys
private void GetKeys(ITable table)
{
List<DataRow> keyRows = connector.GetIndexRows(table.Schema, table.Name.Replace("'", "''"));
for (int i = 0; i < keyRows.Count; i++)
{
DataRow keyRow = keyRows[i];
DatabaseKeyType keyType;
string indexKeyType = keyRow["CONSTRAINT_TYPE"].ToString();
/*if (indexKeyType == "PRIMARY KEY")
keyType = DatabaseKeyType.Primary;
else*/
if (indexKeyType == "UNIQUE")
keyType = DatabaseKeyType.Unique;
else
continue;
Key key = new Key
{
Name = keyRow["INDEX_NAME"].ToString(),
IsUserDefined = false,
Keytype = keyType,
Parent = table,
IsUnique = true
};
// Fill Columns
List<DataRow> keyColumnRows = new List<DataRow>();
keyColumnRows.AddRange(connector.ColumnsBySchema[table.Schema][table.Name.Replace("'", "''")].Where(r => r[OrdColumn].ToString() == keyRow["COLUMN_NAME"].ToString()));
while ((i < keyRows.Count - 1) && (string)keyRows[i + 1]["TABLE_NAME"] == table.Name && (string)keyRows[i + 1]["INDEX_NAME"] == (string)keyRow["INDEX_NAME"])
{
i++;
keyRow = keyRows[i];
keyColumnRows.AddRange(connector.ColumnsBySchema[table.Schema][table.Name.Replace("'", "''")].Where(c => c[OrdColumn].ToString() == keyRow["COLUMN_NAME"].ToString()));
}
// Fill Columns
foreach (DataRow keyColumnRow in keyColumnRows)
key.AddColumn((string)keyColumnRow["COLUMN_NAME"]);
key.ResetDefaults();
table.AddKey(key);
}
// Add Primary Keys
var primaryKeyNames = connector.PrimaryKeyNames;
if (primaryKeyNames.ContainsKey(table.Schema) && primaryKeyNames[table.Schema].ContainsKey(table.Name))
{
Key key = new Key
{
Name = primaryKeyNames[table.Schema][table.Name],
IsUserDefined = false,
Keytype = DatabaseKeyType.Primary,
Parent = table,
IsUnique = true
};
// Fill Columns
foreach (var column in table.ColumnsInPrimaryKey)
key.AddColumn(column.Name);
key.ResetDefaults();
table.AddKey(key);
}
}