如何在 sitefinity 中更新 NewsItem.LastModified?

How to update NewsItem.LastModified in sitefinity?

就像标题一样,我确实在 sitefinity 的文档中使用了这段代码。 https://www.progress.com/documentation/sitefinity-cms/for-developers-edit-content 部分通过版本号修改项目。 它运行良好,但我尝试修改 newsItem 的 "LastModified" => 它会自动更新当前日期。

private void ModifyItemByLiveIDNativeAPI(Guid liveId)
{
    NewsManager manager = NewsManager.GetManager();
    NewsItem live = manager.GetNewsItems().Where(newsItem => newsItem.Id == liveId).FirstOrDefault();

    if (live != null)
    {
        //Edit the item to get the master version.
        NewsItem master = manager.Lifecycle.Edit(live) as NewsItem;

        //Check out the master to get a temp version.
        NewsItem temp = manager.Lifecycle.CheckOut(master) as NewsItem;

        //Make the modifications to the temp version.
        temp.Title = "New Title";
        temp.LastModified = new DateTime(2011,1,1);

        //Checkin the temp and get the updated master version. 
        //After the check in the temp version is deleted.
        master = manager.Lifecycle.CheckIn(temp) as NewsItem;

        manager.SaveChanges();

        //Publish the news item.
        var bag = new Dictionary<string, string>();
        bag.Add("ContentType", typeof(NewsItem).FullName);
        WorkflowManager.MessageWorkflow(master.Id, typeof(NewsItem), null, "Publish", false, bag);
   }
}

标题 => 更新。但是 temp.LastModified => 自动更新到当前日期。 我不知道为什么,我在 google 中搜索更改 LastModified 但没有结果。谢谢

CheckIn 方法会在内部更新 LastModified 属性,因此请尝试直接在 Master CheckIn 之后设置 LastModified。

master = manager.Lifecycle.CheckIn(temp) as NewsItem;

master.LastModified = xxx;

manager.SaveChanges();

如果您在从其他平台导入时正在寻找 "back date" 新闻项目,您可能想要更新 temp.PublicationDate 未上次修改。

我现在不知道为什么,但每次调用 savechange() 时。 lastModify 自动更新我认为它是 sitefinity 的一个特性。 我找到另一种方法来控制我的问题。谢谢大家!!