![](/img/trans.png)
[英]LINQ GroupBy anonymous type and select timestamp that is within +/- one minute
[英]Linq to SQL select returns list within an anonymous type
下面是返回此結果的SQL。
我的linq to sql查詢返回一個具體類型為“ Credentials”的對象,該對象除其他屬性外還包括List(of string)GradesList 。 我可以控制憑據類型和查詢,但不能控制基礎數據庫。
這是我目前的納稅申報表:
Id Code IssueDate ExpDate Grd1 Grd2 Grd3 Grd4 Grd5 Grd6
6 TE0150 4/21/1999 4/21/2002 N N N N Y Y
6 TE0150 3/11/2003 3/28/2007 N N N N Y Y
6 TE0150 3/29/2012 3/28/2017 N N N N Y Y
6 TE0140 5/3/2007 5/3/2008 Y Y Y Y N N
6 TE0140 3/29/2012 3/28/2017 Y Y Y Y Y Y
我想要的是:
Id Code IssueDate ExpDate GradesList
6 TE0150 4/21/1999 4/21/2002 Grd5,Grd6
6 TE0150 3/11/2003 3/28/2007 Grd5,Grd6
6 TE0150 3/29/2012 3/28/2017 Grd5,Grd6
6 TE0140 5/3/2007 5/3/2008 Grd1,Grd2,Grd3,Grd4
6 TE0140 3/29/2012 3/28/2017 Grd1,Grd2,Grd3,Grd4,Grd5,Grd6
這是SQL。 PPS_ENDORSE_DTL表的每個Grd級別都有一列,以“ Y”或“ N”作為值。
from en in PPS_ENDORSE_DTL
join jpi in JPM_JP_ITEMS on new { x1 = en.ACCOMPLISHMENT, x2 = en.DT_ISSUED } equals new { x1 = jpi.JPM_CAT_ITEM_ID, x2 = jpi.EFFDT }
join jp in JPM_PROFILE on new { x1 = jpi.JPM_PROFILE_ID, x2 = en.EMPLID } equals new { x1 = jp.JPM_PROFILE_ID, x2 = jp.EMPLID }
join jci1 in JPM_CAT_ITEMS on en.PPS_ENDORSE_SUBJ equals jci1.JPM_CAT_ITEM_ID
join jci2 in JPM_CAT_ITEMS on new { x1 = jpi.JPM_CAT_TYPE, x2 = jpi.JPM_CAT_ITEM_ID } equals new { x1 = jci2.JPM_CAT_TYPE, x2 = jci2.JPM_CAT_ITEM_ID }
join es in PPS_ENDORSE_SUB on jci1.JPM_CAT_ITEM_IDequals equals es.PPS_ENDORSE_SUBJ
在該大型內聯linq語句中,添加
.AsEnumerable().Select(r => {
var selectedGrades = new List();
if (r.Grd1 == "Y") selectedGrades.Add("Grd1")
if (r.Grd2 == "Y") selectedGrades.Add("Grd2")
...
return new TypeWithGradesList{
....
GradesList = string.Join(",", selectedGrades.ToArray())
}
})
TypeWithGradesList是一個模型,具有最終結果的所有字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.