을 반환하는 ObjectContext
에있는 메서드를 호출하고 싶습니다. 그리고 기본적으로 원하는 방식으로 정렬했습니다. 예를 들어, 나는 다음과 같은 Category
테이블/클래스가 상상 :EntityFramework에서 사용자 지정 정렬 된 EntityCollection을 기본적으로 가져올 수 있습니까?
- 카테고리 ID (PK)
- 이름
- ParentID (FK_Category) 자체를 카테고리 ID를 가리키는 키 외국.
내 데이터 모델에,
지금 (이 표는 카테고리 및 하위 카테고리의 트리 구조의 기본이다)의 public partial class Category : EntityObject
다른에, ParentID == 카테고리 ID를 가진 모든 카테고리를 반환하는 속성이 있습니다 words, EntityCollection<Category> SubCategories
.
가 좋아, 지금은 리피터를 사용하여 내 페이지에있는 모든 범주와 하위 범주를 보여주고 싶은 :
IList<Category> categoryList = new CategoryProvider().GetAll();
rptSubCategories.DataSource = categoryList;
rptSubCategories.DataBind();
간단히
모든 것을 : 뒤에 코드에서
<asp:Repeater ID="rptSubCategories" runat="server">
<ItemTemplate>
<%# Eval("CategoryID") %> - <%# Eval("Name") %>
<asp:Repeater ID="rptSubCategoryCategories" runat="server" DataSource='<%#Eval("SubCategories")) %>'>
<ItemTemplate>
<%# Eval("CategoryID") %> - <%# Eval("Name") %>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
다음을, 나는 데이터 소스를 설정 공장! 그 외의 경우 rptSubCategoryCategories
은 이름별로 정렬 된 카테고리를 제공하지 않습니다.
DataSource='<%# Eval("SubCategories")) %>'
에 :
DataSource='<%# ((EntityCollection<Category>)Eval("SubCategories")).OrderBy(p => p.Name) %>'
하지만 난 기본 내가하지 않도록 정렬해야 할 다른 일을 할 수 있으면 좋겠다 내가 그것을 발견하는 유일한 방법은,에서의 데이터 소스를 변경하는 것입니다 OrderBy에 전화해야합니다. http://www.asp.net/learn/3.5-SP1/video-291.aspx DisplayColumnAttribute를 사용하여 엔터티의 기본 정렬 열 설정에 대한 자습서를 따라 DynamicData에서와 같이 Attributes와 같은 기능을 수행합니다. 누군가 내가하고 싶은 일이 불가능하다고 말하지 않는 한.
.NET 4.0 베타 2 사용
감사합니다.
안녕하세요. 그 대답을 기대하고 있었고, 가능하지 않다는 것을 확실히하고 싶었습니다. 나는 너를 누군가가 우리를 틀리게 증명할 것을 아직도 희망한다. 그 이유는 단순히 코드를 더 예쁘게 보이게하는 것입니다. 당신이이 문제에서 저를 도우면, 현재의 접근법이보기 흉하게 보입니다. 정말 고마워요! –