我有2個模板:ArticleItem和ArticlePageItem的ArticlePageItem有ReferenceField「Content.Reference」鏈接到一個ArticleItem。下面是創建一個文章的代碼:如何以編程方式更新sitecore中的引用?
Item articlePageItem = articlePageParentItem.Add(articleItem.Name, new TemplateItem(master.GetItem(ConstantString.ArticlePageTemplateID)));
using (new UserSwitcher(Sitecore.Context.User))
{
articlePageItem.Editing.BeginEdit();
articlePageItem.Fields["Content.Reference"].Value = articleItem.ID.ToString();
articlePageItem.Editing.EndEdit();
}
但是在我執行上面的代碼,我無法通過Globals.LinkDatabase.GetReferences(articlePageItem)
得到ArticleItem參考,即使我用Globals.LinkDatabase.UpdateReference(articlePageItem)
。
有誰知道如何實現這一點?
[更新] 下面是我們的環境: 我們有一個基於Sitecore的一個網站,和我們正在開發另一個系統旨在簡化商品管理。我們使用.NET 4 & ASP.NET MVC 3實行這個制度,並參考Sitecore.Kernal.dll & Sitecore.Client.dll到我們的項目。但是我們的sitecore版本是6.2,與.NET 4不兼容,所以我只複製了一部分配置。我認爲這可能會導致不完整的web.config。
你叫'UpdateReferences'&'GetReferences'後您的代碼來創建和鏈接的項目? (因爲這應該工作)你想在同一個數據庫中更新/獲取引用(假設'master')還是在'master'中創建項目並嘗試'web'中的'GetReferences'?任何配置或代碼對Sitecore系統(管道等)的更改? –
謝謝你的回覆。是的,我在同一個數據庫(主)中執行了Create&Get操作。 –
@SeanKearney您好,是否有相關的鏈路數據庫除了'<處理器類型=「Sitecore.Pipelines.Loader.SetGlobals,Sitecore.Kernel」 />'任何其它配置? –