Не используйте автономные транзакции, или вы получите очень интересные результаты .
Чтобы избежать проблемы с изменяющимися таблицами, вы можете сделать следующее:
В ПОСЛЕ ВСТАВКИ ИЛИ ОБНОВЛЕНИЯ ИЛИ УДАЛИТЬ ДЛЯ КАЖДОГО триггера ROW найдите идентификатор родителя и сохраните его в коллекции PL / SQL (внутри ПАКЕТА). Затем, в ПОСЛЕ ВСТАВКИ ИЛИ ОБНОВЛЕНИЯ ИЛИ УДАЛИТЬ ТРИГГЕР (уровень инструкции, без части «для каждой строки»), прочитайте родительские идентификаторы из коллекции PL / SQL и соответствующим образом обновите родительскую таблицу.
Посмотрите на метод XDocument.WriteTo ; Например:
using (MemoryStream ms = new MemoryStream())
{
XmlWriterSettings xws = new XmlWriterSettings();
xws.OmitXmlDeclaration = true;
xws.Indent = true;
using (XmlWriter xw = XmlWriter.Create(ms, xws))
{
XDocument doc = new XDocument(
new XElement("Child",
new XElement("GrandChild", "some content")
)
);
doc.WriteTo(xw);
}
}