在Razor和Umbraco 4.11.8中订购了多个属性

EhM*_*365 0 linq umbraco sql-order-by multiple-columns razor

在我们与Umbraco的网站更新期间,我们从4.7.2升级到4.11.8.

在CSHTML文件中我有这个代码:

foreach(var item in Model.AncestorOrSelf("Master")
                         .Items.First()
                         .PublicationFolder.First()
                         .Children.Where("Visible")
                         .OrderBy("publicationType, date desc"))
Run Code Online (Sandbox Code Playgroud)

它工作正常,首先按publicationType排序集合,然后按最新日期排序.

在新版本(4.11.8)中,它不再起作用.它给了我一个例外:At least one object must implement IComparable.

如果我写.OrderBy("publicationType", "date desc"),它不会影响收集.

那么这是一个错误还是我做错了什么?有解决方法吗?

EhM*_*365 5

我找到了一个解决方案,所以我需要将集合转换为一个List<DynamicNode>有效的方法.

foreach (var item in ((List<DynamicNode>)@Model.AncestorOrSelf("Master")
    .Items.First()
    .PublicationFolder.First()
    .Children.Where("Visible").Items)
    .OrderBy(t => t.GetPropertyValue("publicationType"))
    .ThenByDescending(t => t.GetPropertyValue("date")))
Run Code Online (Sandbox Code Playgroud)