Я пытаюсь удалить таблицу данных, которая была загружена в набор данных и была связана.Вот код, который я пытался выполнить.
domain.EnforceConstraints = false;
if (domain.Tables["TABLE_NAME"] != null)
{
domain.Tables["TABLE_NAME"].ChildRelations.Clear();
domain.Tables["TABLE_NAME"].ParentRelations.Clear();
domain.Tables.Remove("TABLE_NAME");
}
domain.EnforceConstraints = true;
Это вызывает исключение в момент удаления таблицы из-за существующего ограничения внешнего ключа.К сожалению, логика такова, что я понятия не имею, как называется ограничение [поэтому я не могу его жестко запрограммировать].
Есть ли возможность выполнить это более простым способом, или я могу получить некоторые предложенияо том, как найти и удалить ограничение, которое вызывает мою проблему.
Заранее спасибо, Стив
-------------------------- ОТВЕТ ------------------------
Мне не разрешили ответить на мой собственный вопрос, таквот решение, которое я придумал.Этот фрагмент кода теперь работает для меня.Мне пришлось перенести отношение на другую таблицу и удалить оттуда ограничение.
if (domain.Tables["TABLE_NAME"] != null)
{
for (int f = domain.Tables["TABLE_NAME"].ChildRelations.Count -1; f >=0; f--)
{
domain.Tables["TABLE_NAME"].ChildRelations[f].ChildTable.Constraints.Remove(domain.Tables["TABLE_NAME"].ChildRelations[f].RelationName);
domain.Tables["TABLE_NAME"].ChildRelations.RemoveAt(f);
}
domain.Tables["TABLE_NAME"].ChildRelations.Clear();
domain.Tables["TABLE_NAME"].ParentRelations.Clear();
domain.Tables["TABLE_NAME"].Constraints.Clear();
domain.Tables.Remove("TABLE_NAME");
}