Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为EditorFor订购实体框架子项_C#_Asp.net Mvc_Entity Framework_Asp.net Mvc 2_Entity Framework 4 - Fatal编程技术网

C# 为EditorFor订购实体框架子项

C# 为EditorFor订购实体框架子项,c#,asp.net-mvc,entity-framework,asp.net-mvc-2,entity-framework-4,C#,Asp.net Mvc,Entity Framework,Asp.net Mvc 2,Entity Framework 4,我已经看到,这表明没有办法让存储库以特定顺序返回实体图中的子项 如果是这样的话,有没有关于如何在EditorFor中排序项目的想法 i、 e //此操作有效,但返回随机顺序 型号:HPERDET.HORDERS)%> //此错误为“模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式。” model.HPERDET.HORDERS.OrderBy(m=>m.APP_DATE))%> //把部落分成 //公共IORDerenumerable{get;set;} //在我的视图模型

我已经看到,这表明没有办法让存储库以特定顺序返回实体图中的子项

如果是这样的话,有没有关于如何在EditorFor中排序项目的想法

i、 e

//此操作有效,但返回随机顺序
型号:HPERDET.HORDERS)%>
//此错误为“模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式。”
model.HPERDET.HORDERS.OrderBy(m=>m.APP_DATE))%>
//把部落分成
//公共IORDerenumerable{get;set;}
//在我的视图模型中进行排序是可行的,但会破坏绑定,因为
//生成的html输入不再具有正确的层次结构名称
型号(订单数量)%>

那么,有没有一种方法可以对图形中的子实体进行排序,以便在EditorFor中使用这些子实体,而不必组装POCO对象,而是按顺序复制EF对象呢?

这对于ViewModel来说是一个很好的例子。ViewModels包装实体框架模型,并以设计视图所需的方式精确显示数据。在ViewModel中执行排序,并将EditFor绑定到自定义排序属性。

我已经在使用ViewModel传递附加数据,但由于EF返回非常大,我试图避免遍历和复制到POCO对象中。当你说“包装EF模型”时,你的意思是包装还是“复制内容,但调整为显示”:在这种情况下,我需要改变的是顺序,因此复制到我自己的类是昂贵的好处。@Aniih,我认为你试图微优化。一般来说,您希望用户在屏幕上轻松使用的任何内容都不足以担心复制。您可能是对的,但情况是,我正在显示一个大的信息图(树),该图(树)已折叠,然后允许用户选择使用jQuery看到的信息。也许我应该用AJAX来代替,但一次发送所有内容(这是一个内部网,所以传输带宽不是问题)似乎是个好主意。我试试这本,看看进展如何。
 //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) %>