2010-12-30 3 views
2

Entity Framework로 첫 프로젝트를 진행하고 있으며 EntityDataSource 및 ListView에 고급 정보를 표시하는 데 어려움이 있습니다. 두 엔티티 주어진 예를 들어ASP.Net EntityFramework 및 ListView와 함께 Sum() 및 Count()와 함께 Eval 사용

:

항목
이름
가격

주문

항목 <가 ---- 항목에 대한 탐색 속성이 포함 번호 주문

모든 주문의 목록을 주문의 총 항목 수와 함께 표시하고 열을 순서의 모든 항목 가격의 합계와 함께 표시하려고합니다. 내가로 구성된 EntityDataSource를 사용하고

은 다음과 같습니다 나는 문제가 어떻게

<%# Eval("Number") %> 

을 파악했다 : 다음과 같이있는 ListView의 ItemTemplate을에서

<asp:EntityDataSource ID="eds" runat="server" ConnectionString="name=NDSEntities" 
DefaultContainerName="NDSEntities" EnableFlattening="False" Include="Items" 
EntitySetName="Orders"></asp:EntityDataSource> 

, 내가 주문 번호를 쓸 수 있습니다 명령의 항목 수를 표시합니다. EntityDataSource의 Select 문에서 Items.Count() 함수를 사용했지만 작동하지 않았습니다.
<%# Eval("Items").Count() %> 

지금 내가 항목의 합계를 얻기 위해 노력하고 붙어 있어요 : 결국 나는 내 ItemTemplate을에서 다음을 수행 할 수 알아 냈어. 나는 여기 붙어있다. 나는
<%# Eval("Items").Sum(Function(i) i.Price)%> 

를 사용하여 시도했지만 나는 다음과 같은 오류 얻을 : 나는 합계가 EntityCollection (의)의 방법임을 알고 있기 때문에

Public member 'Sum' on type 'EntityCollection(Of Item)' not found.

이 나를 혼란을.

오전 내가 항목이 올바르게 계산 방법 : 다음과 같이

내 두 가지 질문

은?

항목 가격의 합계를 계산하려면 어떻게해야합니까?

답변

2

I know that Sum is a method of EntityCollection(Of)

No it isn't.

Enumerable에 정의 된 확장 방법입니다. System.Linq을 포함하지 않았을 수 있습니다.

+0

아. 그것은 그것을 설명합니다. 대신 내 코드에서 함수를 만들고 EntityCollection을 매개 변수로 전달했습니다. 거기에서 합계를 수행하고 총 가격을 얻을 수 있습니다. – mgolus

1

사용이 '<% 번호 평가 ("Items.Count") %>'

0

가이처럼 수행하는 올바른 방법 :

<%# ((ICollection<Item>)Eval("Items")).Sum(i => i.Price) %> 
관련 문제