Я пытаюсь удалить datatable, который был загружен в набор данных, и был связан. Вот код, который я попытался сделать.
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");
}