2016-09-30 2 views
-2

나는 람다에 대해 아무것도 몰라, 심지어는 복잡한 읽을 수 없다 lambda expression. 내가 LINQ로 변환하려는이 람다 코드를 가지고 있지만, 어떻게해야할지 모르겠다. 내가 지금까지 시도하고에 붙어있어 어떤람다로 변환 LINQ

var train = db.sample1 
      .Join(db.sample2, a => a.CertificateId, b => b.CertificateId, (a, b) => new { a, b }) 
      .Where(x => x.a.Year.Value.Year == year && x.a.TrainingTypeId.Value == trainingTypeId && x.a.IsApproved.Value && x.b.EndDate >= DateTime.Now) 
      .Select(z => z.a).Distinct(); 

:

var train = (from c in db.sample1 
    join in ts sample2 where a.CertificateId equals b.CertificateId 
    ...... 
+4

이 이미 LINQ 나는 프로그래밍에 새로운 오전 죄송 @slawekwin – slawekwin

+1

을 (람다 표현식을 사용) : 그러나 문은 다음과 같이 될 것이다. 내가 뭘 원하는 linq 표현 –

+2

로 변환 죄송합니다, 이것은 바보 같은 질문이지만 어떤 이유로? 쿼리에 문제가 있거나 가독성을 높이시겠습니까? – Sasquatch

답변

4

람다 LINQ는 여전히 링크의 표현이다.

var train2 = (from c in db.sample1 
    join t in db.sample2 
     on c.CertificateId equals t.CertificateId 
     where c.Year.Value.Year == year && c.TrainingTypeId.Value == trainingTypeId 
     && c.IsApproved.Value && t.EndDate >= DateTime.Now 
     select c).Distinct(); 
+5

나는 이것을 읽기가 더 어려워 보인다. – Fredrik

+0

나는 또한 lambda linq를 선호한다. 런타임에 이해는 어쨌든 람다 linq에 준수 얻을 그래서 정말 내 의견에 약간의 차이가 있습니다. –

+0

@Steffsww 조인을 사용하지 않고 변환 할 수 있습니까? 가능한? 예 아니오? –