我对Workflow非常陌生,在VB中也是一个虚拟角色,所以,如果是我的弱点,我很抱歉。我们可以使用WF 4中的`使用'块吗?
我想实现这样的使用块:
using (var db = new Dal.DataContextProxy())
{
//My Codes
}
在序列,我想启动数据库在使用块。我应该怎么做?我尝试了Assign,但似乎我不能在其中使用使用Block。
谢谢。
我对Workflow非常陌生,在VB中也是一个虚拟角色,所以,如果是我的弱点,我很抱歉。我们可以使用WF 4中的`使用'块吗?
我想实现这样的使用块:
using (var db = new Dal.DataContextProxy())
{
//My Codes
}
在序列,我想启动数据库在使用块。我应该怎么做?我尝试了Assign,但似乎我不能在其中使用使用Block。
谢谢。
你不能使用标准的活动,但创建一个将数据库暴露给它的孩子的使用活动并不难。请确保您考虑工作流持久性,因为您可能无法在打开SqlConnection的块的中间持续并重新加载工作流状态。
您可以尝试执行您自己的NativeActivity
以关闭完成/错误处理程序中的连接,如documentations and samples中所述。正如Maurice所说,在您的特定情况下,您必须通过ExecutionProperties公开您的DataContextProxy。
类似的东西(适用于您的方案)已经完成,您可以在this Rory Primrose's blog post上进行检查。
谢谢Maurice。那么,我认为把db作为Input Argument传递给Activity更好。你有什么建议? – 2012-03-14 09:26:07
您的意思是作为使用活动的输入?好没问题。创建一个与ForEach结构非常相似的活动,您可以在其中获取输入表达式并将其展示给主体,并在主体完成时调用输入上的Dispose()。这样你可以创建一个新对象或根据需要传递一个现有对象。 – Maurice 2012-03-14 09:40:31