У меня есть справочная таблица ролей, которая представляет собой древовидную структуру
ID [INT] AUTO INCREMENT
Name [VARCHAR]
ParentID [INT]
Я использую ADO.NET DataTable и DataAdapter для загрузки и сохранения значений в этой таблице. Это работает, если я только создаю дочерние элементы существующих строк. Если я создаю дочернюю строку, затем делаю ее дочерней, а затем Update, значение временного идентификатора, сгенерированное DataTable, помещается в столбец ParentID. У меня установлено следующее отношение данных:
dataset.Relations.Add(New DataRelation("RoleToRole",RoleTable.Columns("ID"), RoleTable.Columns("ParentID")))
И когда я создаю новые дочерние строки в DataTable, я вызываю метод SetParentRow
newRow.SetParentRow(parentRow)
Есть ли что-то особенное, что я должен сделать, чтобы генерация идентификаторов распространялась рекурсивно, когда я вызываю Update для DataAdapter?