현재 LINQ의 기본 사항 중 일부를 이해하려고합니다. 나는 Netflix OData 소스를 쿼리하기 위해 LINQPad를 사용 해왔다.LINQ 람다 쿼리 '선택'이 oData와 작동하지 않습니다.
출처 : 람다 쿼리를 사용할 때 단일 속성을 선택할 수없는 것http://odata.netflix.com/v2/Catalog/
- 이해력 쿼리가 완벽하게 작동합니다. Netflix oData 소스에서 lambdas를 사용하여보다 복잡한 쿼리를 수행하는 코드 단편을 발견했습니다.이 코드는 엔티티의 한 속성을 반환하는 데는 문제가 없습니다.
// works fine
var compQuery = from t in Titles
where t.ReleaseYear == 2007
select new { t.Name };
compQuery.Dump();
// fails: "Can only specify query options (orderby, where, take, skip) after last navigation."
var lambdaQuery = Titles
.Where(t => t.ReleaseYear == 2007)
.Select(t => t.Name);
lambdaQuery.Dump();
// works fine - found on SO.
var lambdaQuery2 = People
.Expand("TitlesActedIn")
.Where(p => p.Name == "George Lucas")
.First()
.TitlesActedIn.Select(t => t.ShortName);
lambdaQuery2.Dump();
사람은 기본 람다 쿼리 할 때 하나 개의 속성을 반환하도록 요청 실패 이유에 도움이 되거 수 있을까요?
아아아, 이제 시도해 보았습니다! - 내가 이해하지 못하는 것은 어떻게 다른 람다 쿼리 (사람들)가 투영을 위해 익명의 타입을 생성 할 필요가 없다는 것입니까? – Dal
결과를 구체화하는'.First()'를 호출하기 때문에 전체 레코드를 제거한 다음 클라이언트의 메모리에있는 속성을 선택합니다. –
왜 익명 유형을 사용해야하는지 설명해 주시겠습니까? 감사합니다. –