2016-08-08 172 views
-4

中的Linq,任何人都可以告诉我如何使用EF编写linq查询。我的SQL查询如何将Sql查询转换为EF

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可能会帮助你如何上面您正在寻找这样的事情开始选择你的数据

对于查询:

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文档以了解更多信息。

+0

@Gliad Green谢谢你的回复,但它不适合我。其实我想从training_video_log里有条目的training_video_log中获得所有记录training_video_log.created_on> Training_video_log.created_on – Rafi

+0

@Rafi - 然后请参阅我上面有关添加您尝试的内容的注释,并且当您说不工作时,应该说什么 - 编译错误/异常/意外结果 –

+0

它给编译时错误。我正在使用Visual Studio – Rafi