2009-09-03 85 views
1

我是Workflow Foundation的新手。我一直在通过一本书(K. Scott Allen编程Windows工作流基金会)这本书的方式,这是好的,但我留下了几个问题。最大的一个是'我把数据放在哪里'?Workflow Foundation:我在哪里放置数据?

在整本书中,他使用了Bug跟踪系统的思想;该场景与我想要做的不太远。他的例子使用了一个简单的Bug类,它有三个属性,没有其他任何东西,他只是把它放在他的活动领域,并在必要的时候传递给它。但是在现实世界中,一个错误报告可能会包含你想要搜索的文本行;我的情况当然是。如果所有这些文本都被持久化服务所吓倒了,那么我如何才能进行文本搜索呢?

在现实世界中,您如何处理数据?

回答

2

对于简单键或相关外键,您可以使用跟踪服务将此类键/值对存储在数据库中,稍后使用跟踪表中的跟踪信息查询它们。

对于全文搜索,您可以将数据存储在您正在并行创建的sql-persistence-service的原始表的附加表中。如果工作流程结束或出现错误,您必须手动添加和删除它们。

+0

我想我会在工作流ID上键入这些表?虽然GUID作为关键字在SQL中被忽略,不是吗? – ssg31415926 2009-09-03 16:28:59

+0

是的,您必须在这些表中将WorkflowId引用为GUID。 就我个人而言,我认为GUID是数据库中密钥的不错选择。当然,有些分区表的场景等可以带来好处。整数,但通常情况下,对象通常在运行时在内存中使用任何编程语言创建,并在数据库中“稍后”存储。因此,GUID是很好的,因为您可以在运行时在内存中定义对象实例的身份,而不必通过持久化到数据库来更改它。 – Mischa 2009-09-03 17:14:53

+0

够公平的。我不是DBA:我只是照我说的去做。 :-)回到你原来的答案,我想我们不太可能想在工作流程结束时删除文本搜索数据,并且可能很少发生错误(除非它很早发生)这样会简化事情。非常感谢您的帮助。 – ssg31415926 2009-09-03 18:12:41