不同的LINQ by dateOfCreation

时间:2016-01-27 13:41:35

标签: c# linq

我有我的数据库图表 enter image description here

如您所见,PipelineJobStatus是一个聚合 - 有两个键,第一个键可以重复:

  

PipelineID | JobSTatusID

6 | 3

6 | 6

6 | 8

7 | 1

7 | 2

8 | 9

我想要显示完全相同的视图(合并),但是使用最新的CreatedDateTime for Distinct值。 我的linq:

  private IQueryable<StatusPipelineMerge> wholeResults()
    {
        var query2 = (
           from pjs in db.PipelineJobStatus
           from pipe in db.Pipelines
               .Where(pipe => pipe.PipelineID == pjs.PipelineID).DefaultIfEmpty()
           from status in db.JobStatus
               .Where(statuses => statuses.JobStatusID == pjs.JobStatusID).DefaultIfEmpty()
           from fco in db.FCOes
                .Where(fcoes => fcoes.FCOID == pipe.FCOID)
           from client in db.Clients
           .Where(clients => clients.ClientID == pipe.ClientID)
           group new { pipe.CreatedTimeStamp }
          by new
          {
              status.JobStatusName,
              pipe.PipelineID,
              pipe.ClientID,
              client.ClientName,
              fco.NameFCO,
              fco.FCOID,
              pipe.Employee.Name,
              pipe.Employee.Surname,
              pipe.CommentPipeline,
              pipe.CreatedBy,
              pipe.CreatedTimeStamp,
              pipe.ModifiedTimeStamp,
              pipe.ProjectValueHr,
              pipe.ProjectValueMoney
          } into g

           orderby g.Key.PipelineID ascending

           select new StatusPipelineMerge
           {

               PipelineID = g.Key.PipelineID
               ,
               ProjectValueHr = g.Key.ProjectValueHr
               ,
               ProjectValueMoney = g.Key.ProjectValueMoney
               ,
               CommentPipeline = g.Key.CommentPipeline
               ,
               ClientName = g.Key.ClientName
               ,
               FCOName = g.Key.NameFCO
               ,
               FCOID = g.Key.FCOID
               ,
               ClientID = g.Key.ClientID
               ,
               CreatedTimeStamp = g.Key.CreatedTimeStamp
               ,
               ModifiedTimeStamp = g.Key.ModifiedTimeStamp
               ,
               CreatedBy = g.Key.CreatedBy
               ,
               //CreatedNameSurname = g.Key.Employee.Name + " " + g.Key.Employee.Surname

               JobStatusName = g.Key.JobStatusName
           }

            );

        return (query2);
    }

0 个答案:

没有答案