Как вставить данные в два типизированных набора данных без нарушения ограничений внешнего ключа?

#c# #asp.net #strongly-typed-dataset

#c# #asp.net #strongly-typed-dataset

Вопрос:

Должен ли я просто использовать две разные вставки, начинающиеся с родительского, или есть способ получше?

Комментарии:

1. На самом деле у меня нет проблемы, мне просто интересно, есть ли лучший способ сделать это. В настоящее время я просто использую команды вставки, которые были автоматически сгенерированы типизированными наборами данных один за другим, начиная с родительского. Например, если у меня есть 3 таблицы со связями по внешнему ключу, я сначала использую инструкцию Insert для самого верхнего родительского элемента, затем инструкцию Insert для набора данных с fk от первого родительского элемента и, наконец, инструкцию Insert для набора данных с fk от второго родительского элемента.

Ответ №1:

Вы можете временно отключить ограничения и вставить все данные, а затем снова включить их, используя свойство EnforceConstraints.

 myDataSet.EnforceConstraints = false;

// insert to parent and child. insert order does not matter since constraints are
// disabled

myDataSet.EnforceConstraints = true;