2010-01-15 1 views
3

을 반환하는 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 사용

감사합니다.

답변

3

나는 이것이 가능하지 않다는 것을 알고 있습니다.

SortedSubCategories

과 같은 추가 속성을 만들 수 있습니다.

 public EntityCollection<Category> SortedSubCategories 
     { 
      get 
      { 
       return SubCategories.OrderBy(p => p.Name); 
      } 
     } 

왜 내가 OrderBy 같은 문제를 사용하고 있는지 궁금합니다.

+0

안녕하세요. 그 대답을 기대하고 있었고, 가능하지 않다는 것을 확실히하고 싶었습니다. 나는 너를 누군가가 우리를 틀리게 증명할 것을 아직도 희망한다. 그 이유는 단순히 코드를 더 예쁘게 보이게하는 것입니다. 당신이이 문제에서 저를 도우면, 현재의 접근법이보기 흉하게 보입니다. 정말 고마워요! –

관련 문제