Ich habe zwei verwandte Tabellen in meiner Datenbank: Page und Tag. Eine Seite kann mit vielen Tags in Verbindung gebracht werden.Wie führe ich eine gespeicherte Prozedur einmal pro Klassenhierarchie-Update in LINQ aus?
Immer wenn eine dieser beiden Tabellen geändert wird, muss eine gespeicherte Prozedur namens BeforePageHierarchyUpdate ausgeführt werden (in meinem Fall führt diese gespeicherte Prozedur einige Protokollierung und Versionierung in der Page-Hierarchie durch).
Was mir Probleme hat zu geben sind diese beiden Anforderungen:
Die SP ausgeführt werden muss, wenn entweder eine Page-Instanz oder eine Tag-Instanz aktualisiert werden. Wenn jedoch BEIDE Seiten und einer der zugehörigen Tags aktualisiert werden, sollte der SP nur einmal aufgerufen werden.
Die gespeicherte Prozedur muss in derselben Transaktion wie die anderen LINQ-Anweisungen enthalten sein. Wenn die LINQ-Anweisungen fehlschlagen, muss die gespeicherte Prozedur zurückgesetzt werden. Wenn die gespeicherte Prozedur fehlschlägt, dürfen die LINQ-Anweisungen nicht ausgeführt werden.
Hat jemand irgendwelche Ideen, wie man so etwas implementiert?
Für besser oder schlechter, das ist die Implementierung, die ich derzeit verwende. Wenn ich meine Meinung ändere, werde ich versuchen, mich daran zu erinnern, diese Frage zu aktualisieren. – AaronSieb