如何在LINQ

时间:2017-08-23 17:08:11

标签: c# entity-framework linq linq-to-sql

我尝试使用这一行:

return  ObjectContext.TH_Proposal.GroupBy.where(/* condition*/).(y => y.ProposalID).Max(y =>y.ProposalDate);

我希望使用LINQ

这样的结果
select * 
from TH_Proposal
where ProposalDate in (select max(ProposalDate)from TH_Proposal group by  ProposalID)

2 个答案:

答案 0 :(得分:1)

你可以这样做:

ObjectContext.TH_Proposal.GroupBy(
                  p => p.ProposalID,
                  (id, g) => g.OrderByDescending(p => p.ProposalDate).First());

ProposalID对条目进行分组,然后选择ProposalDate最高的条目。

答案 1 :(得分:0)

Linq比SQL更容易,因为Linq可以取每组的第一项:

return  
    ObjectContext.TH_Proposal
                 .OrderBy(y => y.ProposalDate)
                 .GroupBy(y => y.ProposalID)
                 .Select(g => g.First());