2016-09-30 8 views
-2

私はラムダについて何も知らないし、複雑なものも読むことができないlambda expression。私はLINQに変換したいというこのラムダコードを持っていますが、どういうわけかわかりません。私がこれまで試してみましたとに捕まってしまった何Lambdaに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も好きです。実行時の理解は、とにかくlambda linqに準拠するようになるので、私の意見にはほとんど違いがありません。 –

+0

@Steffsww結合を使用せずに変換できますか?可能?はい・いいえ? –