工作流基础分离模式

时间:2009-12-02 14:52:48

标签: c# sql-server-2005 workflow workflow-foundation

我正在使用Workflow Foundation中的持久性和跟踪服务,我认为在SQL Server中仅为工作流使用单独的模式是个好主意。

不幸的是,它们似乎将默认的dbo架构名称硬编码到其代码中。一个例子是SqlTrackingService类。由于他们编写跟踪类的方式,我无法覆盖方法来提供我自己的数据库查询代码。

我考虑过以下选项,但有些似乎不可能:

  • 从头开始重新编写跟踪
  • 反汇编并重新编写跟踪文件(许可违规?)
  • 拦截和重写sql查询的一些方法
  • 某种方式欺骗它使用过滤CommandText的自定义版本的SqlCommand
  • 继续使用dbo架构作为WF的东西
  • 为WF使用完全独立的数据库。

有没有人有任何我未考虑过的建议或选择?感谢。

1 个答案:

答案 0 :(得分:1)

在大多数情况下,我只接受dbo方案,有时会将事物移到单独的数据库中。据我所知,没有办法拦截命令并重写方案或表名,但我从未尝试过。如果你想重写,我做了一个端口,SqlCeWorkflowPersistenceService,SQLCe和LinqToSql。随意使用和/或修改它以满足您的需求。有关代码,请参阅here。它与默认的SqlWorkflowPersistenceService几乎完全相同,除了所有权部分都被破坏了。