Sitecore сортировать детей по __Созданное поле
У меня есть решение Sitecore 6.6 под управлением MVC и Razor. У меня есть следующая строка;
@Html.Raw(Sitecore.Context.Database.GetItem(myList.Children.LastOrDefault()["myField1"]).Fields["myField2"])
Вышеприведенное работает нормально, за исключением порядка сортировки. Мне нужно получить последний элемент на основе поля __Created. LastOrDefault, кажется, берет последний элемент в дереве, который не всегда соответствует фактическому последнему созданному элементу.
Это можно сделать в одну строку, как указано выше?
1 ответ
Как насчет этого:
myList.GetChildren()
.OrderBy(x => x[Sitecore.FieldIDs.Created])
.Reverse()
.LastOrDefault()
Я думаю, это тоже будет работать:
myList.GetChildren()
.OrderBy(x => x.Statistics.Created)
.Reverse()
.LastOrDefault()
Имейте в виду, что сначала будут извлечены все дети, а затем произойдет сортировка. Если у вас много детей, это будет медленно.
Одно общее замечание, вы не должны делать это в представлении на самом деле. Вы вкладываете слишком много логики туда. Ваша модель должна предоставить предмет, который вам нужен (последний созданный).