2014-10-10 2 views
0

DB 액세스를 위해 Entity Framework를 사용하고 있습니다.linq 쿼리의 최소값 얻기

엔티티 중 하나는 제품이고 하나의 제품은 많은 용어를 가질 수 있습니다.

가 여기에 기간 클래스의 :

public partial class Term 
{ 
    public short ID { get; set; } 
    public short ProductID { get; set; } 
    public byte TermSegmentID { get; set; } 
    public byte MinTerm { get; set; } 
    public byte MaxTerm { get; set; } 


    public virtual Product Product { get; set; } 
} 

내 모든 제품 목록을 선택하는 데, 나는 MinTerm에서 최소 값을 반환하려고했는데 - 그 모든 제품이 아닌 각 하나에 대한 가장 낮은 값이다.

아무도 도와 줄 수 있습니까? 이것은 내 제한된 지식으로는 어려움을 증명합니다.

미리 감사드립니다.

답변

0

Product에는 Terms 속성이 있습니까?

var minMinTerm = products.SelectMany(product => product.Terms) 
         .Min(term => term.MinTerm); 

SelectMany 방법은 순서를 "평평"- 그래서 당신은 용어의 하나의 시퀀스 제품에서 용어 시퀀스의 각각의 논리적 연결로 끝날 : 그렇다면, 그것은 매우 간단합니다.

1

이것은 당신이 원하는 일을해야합니다

byte minTerm = yourProducts.SelectMany(x => x.Terms).Min(x => x.MinTerm);