为EditorFor订购Entity Framework子项

时间:2010-08-28 17:28:28

标签: c# asp.net-mvc entity-framework asp.net-mvc-2 entity-framework-4

我见过Ordering sub-items within ordered items in a Linq to Entities Query表示没有办法让存储库按特定顺序返回实体图中的子项。

如果这是对的,有关如何在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 个答案:

答案 0 :(得分:1)

这是ViewModel的绝佳案例。 ViewModels包装实体框架模型,并以与其设计的视图所需的方式精确地呈现数据。在ViewModel中执行排序,并将EditFor绑定到自定义排序属性。