如何将Sql查询转换为EF中的Linq

本文关键字:EF 中的 Linq 转换 查询 Sql | 更新日期: 2023-09-27 18:01:19

谁能告诉我如何使用EF编写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

如何将Sql查询转换为EF中的Linq

这可能会帮助您如何开始选择数据

对于上面的查询,您正在寻找这样的内容:

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)
             };