📅  最后修改于: 2023-12-03 15:23:27.612000             🧑  作者: Mango
在 Sitecore C# 开发中,我们可能需要通过代码来更新某个数据项的字段。但是如果我们直接通过代码更新了该字段,修订版也会被更新。这对于一些场景是不可接受的,比如需要保留历史版本的内容。本文将介绍如何在 Sitecore C# 中通过代码更新字段时不想更新修订版。
在进行字段更新时,我们需要注意以下两点:
因此,我们需要找到一种方式,在不更新修订版的情况下,直接更新字段。
在 Sitecore 中,数据项的字段信息存储在 Field
对象中。我们可以在更新字段之前,通过获取该字段的历史版本记录,找到最新的版本,并更新该版本的字段信息。这样,我们就可以在不更新修订版的情况下,直接更新该字段。
以下是实现上述功能的 C# 代码片段:
// 获取数据项
Item item = Sitecore.Context.Item;
// 获取字段
Field field = item.Fields["FieldName"];
// 获取最新的版本
Version version = item.Versions.GetLatestVersion();
// 获取该版本的字段信息
Field fieldVersion = version.Fields["FieldName"];
// 更新字段信息
using (new EditContext(version))
{
fieldVersion.Value = "New Field Value";
}
// 保存版本
version.Save();
在上述代码中,我们通过 item.Versions.GetLatestVersion()
方法获取了最新的版本,并通过 version.Fields["FieldName"]
方法获取了该版本中特定字段的信息。我们通过 using (new EditContext(version))
创建编辑上下文,将 fieldVersion.Value
属性赋值为新的字段值,然后通过 version.Save()
方法保存该版本的信息。
通过以上方式,我们就可以在 Sitecore C# 中通过代码更新字段时不想更新修订版了。