Заказ подпунктов Entity Framework для EditorFor

Я видел Упорядочивание вложенных элементов в упорядоченных элементах в запросе Linq to Entities, который предполагает, что нет способа заставить репозиторий возвращать вложенные элементы в графе объектов в определенном порядке.

Если это правильно, есть мысли о том, как заказать элементы в EditorFor?

т.е.

 //This works but returns a random order
 <%: Html.EditorFor(model => model.HPERDET.HORDERS) %>


 //This errors with "Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions."
 <%: Html.EditorFor(model => model.HPERDET.HORDERS.OrderBy(m=>m.APP_DATE)) %>

 //presorting the HORDERS into 
 //a public IOrderedEnumerable<HORDER> SortedHorders { get; set; } 
 //and ordering in my view model works, but breaks the binding because 
 //the generated html inputs no longer have the correct hierarchical names
 <%: Html.EditorFor(model => model.SortedHorders) %>

Так есть ли способ сортировки подобъектов в графе, чтобы использовать их с EditorFor, не прибегая к сборке объектов POCO, дублирующих объекты EF, кроме как в порядке?

1 ответ

Решение

Это отличный случай для ViewModel. ViewModels обертывают модель Entity Framework и представляют данные точно так, как того требует представление, для которого они предназначены. Выполните сортировку в ViewModel и привяжите EditFor к пользовательскому свойству.

Другие вопросы по тегам