在al_jira_defect_out表中,我有Batch_Insert_Timestamp,AL_Defect_ID列以及该表中的其他columns.And,将有不同Batch_Insert_Timestamp的重复AL_Defect_IDs。
按照下面的linq代码,我得到了所有的记录,它们是Jira_Status == 0
var defects = (from d in db.al_jira_defect_out
join p in db.al_jira_ref_defect_project on d.Defect_Product_ID.ToString() equals p.al_product_id
join t in db.al_jira_ref_defect_type on d.Defect_Type_ID equals t.type
where d.Jira_Status == 0
select new Issue
{
fields = new CreateIssue
{
project = new Project
{
key = g.jira_project_key
},
issuetype = new Issuetype()
{
name = t.jira_equivalent
},
description = d.Defect_ShortDesc,
summary = d.Defect_DetailDesc,
versions = new List<Versions>
{
new Versions {name = d.Defect_Release_DetectedIn}
},
priority = new Priority
{
name = d.Defect_Severity_Name
},
customfield_10182 = d.AL_Defect_ID.ToString(),
}
}).Select().ToList();我正在获得与AL_Defect_IDs副本的记录。但是我需要每个包含所有必需列的最新recordsMax(d.Batch_Insert_Timestamp),请帮助我获得linq查询。
发布于 2018-03-16 19:21:52
如果您在AL_Defect_ID上分组,您可以按Batch_Insert_Timestamp订购,并接受最后一个(最新)一个:
var defects = (from d in db.al_jira_defect_out
join p in db.al_jira_ref_defect_project on d.Defect_Product_ID.ToString() equals p.al_product_id
join t in db.al_jira_ref_defect_type on d.Defect_Type_ID equals t.type
where d.Jira_Status == 0
group new { d, p, t } on d.AL_Defect_ID into dptg
let dpt = (from dpt in dptg order by dpt.d.Batch_Insert_Timestamp select dpt).Last()
select new // ... whatever using dpt示例代码在p中不使用select,因此可以将其排除在group之外。
https://stackoverflow.com/questions/49295698
复制相似问题