답변:
var list = (from t in ctn.Items
where t.DeliverySelection == true && t.Delivery.SentForDelivery == null
orderby t.Delivery.SubmissionDate
select t).Take(5);
take
데이터베이스에서 처음 5 행만 할 수있는 방법이 있습니까?
[ @Ajni가 제공 한 답변보다 다소 설명적인 답변을 제공합니다 .]
LINQ 유창한 구문을 사용하여 얻을 수도 있습니다 .
var list = ctn.Items
.Where(t=> t.DeliverySelection == true && t.Delivery.SentForDelivery == null)
.OrderBy(t => t.Delivery.SubmissionDate)
.Take(5);
참고 각 방법 (즉 Where
, OrderBy
, Take
)이 LINQ 문에 표시가 걸리는 람다 식 인수로한다. 또한 설명서는 다음으로 Enumerable.Take
시작합니다.
시퀀스의 시작 부분에서 지정된 수의 연속 요소를 반환합니다.
SQL 스크립트에서와 같이 From-> Where-> Select 시퀀스에 익숙하지 않다고 생각하면 Select-> From-> Where 와 같습니다 .
그러나 Sql Engine 내에서 ' From-> Where-> Select ' 의 순서로 구문 분석된다는 것을 알지 못할 수도 있습니다. 유효성을 확인하려면 간단한 스크립트를 사용해보십시오.
select id as i from table where i=3
작동하지 않습니다. 이유는 엔진이 Where before Select 를 구문 분석 하므로 where 에서 별칭 i를 알 수 없기 때문입니다 . 이 작업을 수행하려면 시도해 볼 수 있습니다
select * from (select id as i from table) as t where i = 3