Windows Workflow:自定义持久性服务,相同的架构和逻辑?

时间:2009-06-30 19:35:38

标签: workflow-foundation

所以我一直在使用Windows Workflow默认的SQL持久性服务,它可以自行处理所有内容而不用担心。现在,我部署的其中一个环境无法直接访问数据库;它通过代理上的Web服务推送存储过程调用,以增加安全性。这当然不能取悦SQL持久性神,尽管我希望能够从那个环境中利用它。因此,我在默认行为和可能是我的环境代码之间的唯一区别是调用存储过程的另一种方式:远程而不是直接访问(Web服务来回移动数据集)。

如果你要解决这个问题,那么你可以利用持久性服务,你会做什么?从理论上讲,我想保留所有相同的表和程序,但我无法找到一个很好的参考,我需要调用存储过程。

1 个答案:

答案 0 :(得分:3)

我编写了一个适用于SQL Compact的WorkflowPersistenceService。它的结构与原始SqlWorkflowPersistenceService的内部结构紧密匹配,但它不使用存储过程,但它不能像SQL Compact不支持它们那样。提供程序使用Linq to SQL代替。由于L2S与SQL Compact作为SQL Server同样运行良好,因此提供商可以很好地完成这两项工作。数据库方案的唯一区别是删除了所有权,因为SQL Compact是单个用户数据库。那说添加它会很容易。考虑到这一点并在WorkflowPersistenceService部分和L2S部分之间添加WCF层应该不会很难。

您可以从http://code.msdn.microsoft.com/SqlCeWFPersistence下载项目。

您需要更改的代码是SqlCeDataAccess类。