2

提前感谢您的任何意见或建议!

我在一个需要长时间运行工作流持久性的大型项目中使用 WF4。出于部署一致性的原因,为实例存储对象使用备用模式名称会很有帮助。例如,System.Activities.DurableInstancing.InstanceTable 会变成 DurableInstancing.InstanceTable 等等。

更新 SQL 脚本来完成这个服务器端并不难,但据我所知,在生成命令时无法修改 SqlWorkflowInstanceStore 使用的默认模式。似乎架构名称是从 SqlWorkflowInstanceStoreConstants.DefaultSchema 中读取的,这是一个常量(顾名思义)。SqlWorkflowInstanceStore 是密封的,推出自己的 InstanceStore 似乎是一项艰巨的任务,所以我不愿意追求这个选项。

有谁知道我可能会错过的更简单的方法?另外,我知道更改架构名称会增加应用未来实例存储更新的步骤,但任何人都可以预见其他潜在问题吗?

4

2 回答 2

0

我从未尝试过,但据我所知 SqlWorkflowInstanceStore 只调用存储过程。所有这些都需要在 System.Activities.DurableInstancing 数据库方案中,但您应该能够将表和视图移动到另一个数据库方案。

坦率地说,我可能永远不会这样做,因为这意味着我不再处于受支持的场景中并且看不到任何好处。如果由于某种原因您需要查询 System.Activities.DurableInstancing 表/视图,并且因为您的应用程序的设置方式需要在另一个数据库方案中,我将在那里创建指向原始表的视图。

于 2012-11-14T08:23:07.053 回答
0

实现您自己的 InstanceStore 并不困难。我们处于类似的情况,我们真的不希望有两个模式,我们的和工作流 SQL。我们实现了自己的 InstanceStore,它大约有 280 行代码。我们必须将一个表添加到我们的架构中,并将几个字段添加到现有表中。

我鼓励您尝试实现自己的 InstanceStore。

于 2012-11-14T15:25:35.743 回答