我的數據庫中有兩個相關的表格:Page和Tag。一個頁面可以與許多標籤相關聯。如何在LINQ中的每個類層次結構更新中運行一次存儲過程?
無論何時修改這兩個表中的任何一個,需要執行一個名爲BeforePageHierarchyUpdate的存儲過程(在我的例子中,這個存儲過程在Page層次結構上執行一些日誌記錄和版本控制)。
什麼給我的問題是這兩個要求:
如果任一頁面實例或標記實例被更新的SP必須運行。但是,如果同時更新頁面及其相關標籤之一,則應僅調用SP一次。
存儲過程必須包含在與其他LINQ語句相同的事務中。如果LINQ語句失敗,則需要回滾存儲過程。如果存儲過程失敗,則不得執行LINQ語句。
有沒有人有任何想法如何實現這樣的事情?
如果我需要更新與單個頁面關聯的多個標籤,該怎麼辦? – AaronSieb 2009-05-28 01:57:14
傳遞一個「數組」(逗號分隔列表)字符串,並將其拆分到存儲過程中:http://www.sommarskog.se/arrays-in-sql.html,我喜歡這種方法:http:// www.sommarskog.se/arrays-in-sql-2005.html#tblnum,您可以將INSERT的SELECT FROM中的多個參數拆分爲臨時表,然後使用這些集合進行處理。你可以問另一個關於使用多個逗號分隔列表參數的問題,並獲得大量的信息。 – 2009-05-28 02:36:23