2014-02-10 40 views
0

我試圖使用Database.GetItem(...)來獲取物品的所有版本。獲取Sitecore項目的所有版本。無論終身價值

item.Versions.GetVersionNumbers(); 

按預期返回三個版本(1,2和3)。

但是

item.Versions.GetVersions() 

返回一個空數組。 看來,原因是版本1具有終身日期不包括當前日期

db.GetItem(item.ID, item.Language, new Version(1)); //returns null 
db.GetItem(item.ID, item.Language, new Version(2)); //returns the correct version as expected 
db.GetItem(item.ID, item.Language, new Version(3)); //returns the correct version as expected 

所以,問題是:如何通過一個項目的所有版本foreache。此外,這些版本在未來的某個時間內會有一段時間。

+0

我不知道這是否會幫助,但你試過通TRUE;以'GetVersions()'方法?只需調用'item.Versions.GetVersions(true)'? –

回答

0

你可以試試這個:

var versions = Sitecore.Data.Managers.ItemManager.GetVersions(item); 
var allVersions = versions.Select(x => item.Database.Items[item.ID, item.Language, x]);