如何在 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 的一个特性。
我找到另一种方法来控制我的问题。谢谢大家!!
就像标题一样,我确实在 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 的一个特性。 我找到另一种方法来控制我的问题。谢谢大家!!