2016-08-08 6 views
-4

EFを使用してlinqクエリを書く方法を教えてください。EFのLinqへのSQLクエリの変換方法

var result = from tr in _db.Training 
      join lo in _db.Training_video_log 
      on tr.Training_id equals lo.fk_trainingvideo_resource_file 

      where lo.fk_user_id = 1050 && 
      tr.modified_on > lastDate 

      group new { tr, lo } 
      by new { tr.Training_id, tr.title, tr.create_on, tr.modified_on } into gj 
      select new 
      { 
       TrainingId = gj.Key.Training_id, 
       Title = gj.Key.title, 
       CreateOn = gj.Key.create_on, 
       ModifiedOn = gj.Key.modified_on, 
       LastDate = gj.Max(item => item.lo.created_on) 
      }; 

LINQのを見てください:私のSQLクエリは

select * from 
    (select tr.Training_id, 
      tr.title, 
      tr.create_on, 
      tr.modified_on, 
      max(lo.created_on) as lastDate 
    from [trainig] tr 
    join [training_video_log] lo 
    on tr.Training_id = lo.fk_trainingvideo_resource_file 
    and lo.fk_user_id = 1050 
    group by tr.Training_id, tr.title, tr.create_on, tr.modified_on) X 
Where modified_on > lastDate 
+0

質問を編集して読みやすくしてください。 – Dennis

+0

SQLを投稿して変換を依頼しないでください。少なくともクラスモデルを表示して、ナビゲーションプロパティと関連の多重度を確認します。また、あなた自身の最初の努力を示してください。彼らはあなたが思うかもしれないよりも、私たちにもっと多くを明確にします。 –

答えて

0

Thisは、あなたがこのような何かを探している上記のクエリのためにあなたのデータに

を選択して起動する方法であなたを助けるかもしれないです詳細は、ドキュメントを参照してください。

+0

@Gliad Greenさんからのお返事ありがとうございますが、それは私のために働いていませんでした。実際に私はTraining_video_logのエントリを持っているトレーニングテーブルからすべてのレコードを取得したいと思います。training.created_on> Training_video_log.created_on – Rafi

+0

@Rafi - あなたが試したものを追加することについて上の私のコメントを参照してくださいまた、コンパイルエラー/例外/予期しない結果 –

+0

コンパイルエラーが発生しました。 Visual Studioを使用しています – Rafi

関連する問題