簡體   English   中英

Linq to SQL選擇匿名類型內的返回列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM