2012-11-13 28 views
2

非常感謝您的任何意見和建議!有關SqlWorkflowInstanceStore如何與其他模式一起工作的任何想法?

我在需要長時間運行工作流持久性的大型項目中使用WF4。出於部署一致性原因,爲實例存儲對象使用備用模式名稱會很有幫助。例如,System.Activities.DurableInstancing.InstanceTable將成爲DurableInstancing.InstanceTable等。

更新SQL腳本來完成此服務器端並不困難,但從我所知道的,沒有辦法修改生成命令時由SqlWorkflowInstanceStore使用的默認模式。看起來模式名稱是從SqlWorkflowInstanceStoreConstants.DefaultSchema讀取的,它是一個常量(顧名思義)。 SqlWorkflowInstanceStore是封閉的,它似乎是一個相當的任務推出自己的InstanceStore,所以我不願意追求這個選項。

有沒有人知道更簡單的方法來做到這一點,我可能會失蹤?另外,我知道更改模式名稱會增加應用未來實例商店更新的步驟,但任何人都可以預見其他潛在問題嗎?

回答

0

我從來沒有嘗試過,但據我所知SqlWorkflowInstanceStore只調用存儲過程。所有這些都需要在System.Activities.DurableInstancing數據庫方案中,但您應該能夠將表和視圖移動到另一個數據庫方案。

非常坦率地說,我可能永遠不會這樣做,因爲那意味着我不再處於受支持的場景中,並且看不到任何好處。如果由於某種原因,您需要查詢System.Activities.DurableInstancing表/視圖,並且因爲您的應用程序的設置方式需要在另一個數據庫方案中,我只需在那裏創建指向原始表的視圖。

+0

這聽起來很合理,謝謝!正如你所建議的,我傾向於通過視圖從應用程序中訪問實例數據,並且可能在實施過程中實現自定義實例存儲。 – Royce

0

實現您自己的InstanceStore並不困難。我們遇到了類似的情況,我們實際上不希望有兩個模式,我們的和工作流SQL。我們實現了我們自己的InstanceStore,它大約有280行代碼。我們必須在我們的模式中添加一個表格,並在現有表格中添加一些字段。

我鼓勵你嘗試實現你自己的InstanceStore。

+0

你爲什麼不分享代碼? – Maurice

+0

@John感謝您的回覆!我對創建自定義實例存儲非常感興趣(可能基於存儲庫)。你遇到過任何鎖定或併發問題嗎? – Royce

+0

分享生產代碼很難,但如果我能找到我們的「概念證明」,我會分享這些。 –

相關問題