У меня есть две связанные таблицы в моей базе данных: Page и Tag. Одна страница может быть связана со многими тегами.
Когда бы ни изменялась любая из этих двух таблиц, необходимо выполнять хранимую процедуру BeforePageHierarchyUpdate (в моем случае эта хранимая процедура выполняет некоторые записи в журнал и управление версиями в иерархии страницы).
Что вызывает у меня проблемы, это два требования:
SP должен быть запущен, если обновляется либо экземпляр страницы, либо экземпляр тега. Но если ОБА и страница, и один из связанных с ней тегов обновляются, то SP следует вызывать только один раз.
Хранимая процедура должна содержаться в той же транзакции, что и другие операторы LINQ. Если операторы LINQ не выполняются, хранимую процедуру необходимо откатить. В случае сбоя хранимой процедуры операторы LINQ не должны выполняться.
У кого-нибудь есть идеи, как реализовать что-то подобное?