我能够将linq2sql对象加载到我的工作流服务实例中,并且能够毫无问题地访问这些对象中的值。但是,我注意到我创建的加载这些对象的工作流活动在接收时被意外调用,而我的工作流程没有按预期运行。
我怀疑这是一个可串行化的问题。当我删除了对象的存储空间,但只是从对象中存储了一些选定的“值”(简单类型 - bool,int)时,额外的调用就消失了,工作流程开始正常运行。
那么 - 关于我为什么会看到这些问题的任何想法?有没有人真的知道它是序列化相关还是注意?
思想?
答案 0 :(得分:1)
我相信L2S默认使用事件进行更改跟踪,因此工作流中使用的实体实际上包含返回L2S上下文对象的引用。并且通过序列化,它将尝试序列化所有这些并在以后重新加载它,这是不起作用的。最好的方法是使用简单的DTO对象,可以安全地序列化和反序列化作为工作流状态的一部分。