2011-08-02 8 views
0

.NET 4.0을 사용하여 ASP.NET MVC + LINQ-to-SQL을 실행하고 있습니다.익명 형식을 사용하는 다중 테이블 LINQ-SQL 쿼리

나는이에 대한 쿼리와 유사한 있습니다

var labels = (from c in db.Customers 
join o in db.Orders 
on c.CustID equals o.CustID 
select o).Distinct(); 

나는 익명의 쿼리를이

Customers.Select(x => x.Orders) 같은 것을 동일 할 수 있나요?

쿼리 깊이가 3 또는 4 인 경우 어떻게합니까?

+0

익명 형은 무엇입니까? –

+0

그 구문을 "Lambda"라고합니다. 익명 형식은 완전히 다른 개념입니다. 그것은 당신이 (어떤 linq, 또는 lambda, 또는 다른 것에서) 익명의 타입을 반환한다는 것을 의미합니다. 온라인에서 linq 쿼리, 람다 식 및 익명 형식에 대한 정의를 확인하여 마음을 없애야합니다. –

+0

@Matteo : 아, 이제 알았습니다. –

답변

0

당신이 더 많거나 적은 동등한이 거기에있다가 쿼리 :

var labels = db.Customers 
    .Join(db.Orders, c => c.CustID, o => o.CustId, (c, o) => o) 
    .Distinct(); 

참고로, 그것은 다른 이름으로 갈 수 있습니다. "람다"구문은 일반적인 구문입니다. "유창한"구문은 또 다른 구문입니다. 그것에 대해 익명의 것은 없습니다. 익명 유형은 다음과 같이 정의 된 이름없는 유형입니다.

var anonymousObject = new { SomeField = 2, SomeOtherField = "Foo" }; 
관련 문제