2010-06-05 64 views
1

我在我的ASP.NET MVC2应用程序中托管了一个wcf工作流服务。 我需要能够在我的工作流程(WF4)中加载/保存数据。 如何做?我应该在我的活动中实例化我的实体框架上下文并读/写吗?如何从WF4访问数据库?

干杯。

回答

1

有几种方法可以获取您的数据。您可以使用来自CodePlex的WF ADO.NET Activity Pack CTP 1之类的东西,它可以工作,但不能说我是粉丝。你可以在CodeActivity中使用EF,NHibernate等来做类似的事情。但总的来说我总是告诉人们分开什么如何。工作流应该关注什么部分,你应该保持如何以外的工作流本身。这意味着要创建一个真正简单的活动,与工作流程扩展一起使用,并将数据访问代码放入工作流程扩展中。一旦你这样做了,你的工作流扩展只是另一个数据仓库,你可以在那里使用标准的编码技术。

+0

是的,我完全同意你的看法,我也是一个关注分离的大粉丝!当然,我有我的数据存储库。 但是,在WF活动中实例化我的数据存储库服务最后是实例化我的EF上下文。 我的问题是:它可以,或者我应该创建某种“外部”服务,并将它注册到WF运行时的某个地方(正如我所理解的那样,我在WF3.5中这样做)。 我的问题是更技术性的,然后我可以使我的分解顶部:) 什么是你提到的WF扩展? – 2010-06-06 12:12:33

+1

Wf4扩展与WF3运行时服务相同。将其添加到WorkflowInvoker/WorkflowApplication Extensions集合(或WorkflowServiceHost WorkflowExtensions集合)中,并使用context.GetExtension ()获取对其的引用。 – Maurice 2010-06-06 12:23:18