OrchardCMS Infoset和partrecord不同步

时间:2017-06-02 07:20:55

标签: orchardcms

我在使用ContentItemVersionRecord时发现我的partrecord(支持记录)和信息集记录正在同步。

该网站是使用动态表单和自定义部件记录开发的,例如......

public class ParticipantPartRecord : ContentPartVersionRecord
{
    public virtual string ParticipantId { get; set; }
}

public class ParticipantPart : ContentPart<ParticipantPartRecord>, ITitleAspect
{
   public string ParticipantId {
       get { return Retrieve(r => r.ParticipantId); } 
       set { Store(s => s.ParticipantId, value); } }
}

更新时(我使用允许编辑的动态表单模块的分支 - 请参阅问题6163)通过DynamicForm创建记录,FormController创建ContentItem的草稿,更新绑定,并发布ContentItem,它更新了ContentItemVersionRecord中的信息集记录,并且(我假设)触发了后备记录的更新。

我通过工作流程更新了一些字段(因为它们是以编程方式生成的,而不是在表单上设置的用户)。当我更新这些记录时(在之前发布的草案上,所以最新版本),信息集更新,但是支持记录似乎没有。

由于大多数数据检索都使用_contentManager.Get(id),我没有注意到这个问题,但是当在编程更新的记录上使用_contentManager.Query.Where()时,我发现支持记录没有在Orchard_Framework_ContentItemVersionRecord

中更长时间匹配InfoSet记录

在工作流程中以编程方式更新记录时,我使用

之类的代码
var participant = workflowContext.Content.ContentItem.As<ParticipantPart>();
participant.ParticipantId = GenerateParticipantId();

这会更新ContentItemVersionRecord中的InfoSet记录,但后备记录似乎没有更新。

之前我还没有使用过VersionedRecords,我想知道我是否需要创建草稿,并且发布以强制更新后备记录,或者Handler中是否有需要设置的内容触发对备份记录的更新。

0 个答案:

没有答案