簡體   English   中英

如何檢查Linq連接查詢C#中是否存在列?

[英]How to check if column is exist in Linq join query c#?

嗨,我正在運行一個Linq查詢來聯接三個表。 以下是查詢...

answerText = ds.Tables[0];
questionAvg = ds.Tables[1];
interviews = ds.Tables[2];

var data = from at in answerText.AsEnumerable()
           join qa in questionAvg.AsEnumerable() on at.Field<int>("ID") equals qa.Field<int>("DealerID")
           join inter in interviews.AsEnumerable() on at.Field<int>("ID") equals inter.Field<int>("DealerID")
           select new
           {
               DealerID = at.Field<int>("ID"),
               DealerName = at.Field<string>("Name"),
               AnswerText1 = at.Field<int?>("12"),                           
               AnswerText2 = at.Field<int?>("8"),
               AnswerText3 = at.Field<int?>("4"),
               AnswerText4 = at.Field<int?>("0"),
               AnswerText5 = at.Field<int?>("-4"),
               Rank = qa.Field<Int64?>("Rank"),
               Average = qa.Field<decimal?>("Average"),
               N = inter.Field<int?>("N")
           };

現在有時answerText數據表僅具有第12和8列。因此缺少第4 0 -4列。 我應該如何避免在上面的查詢中檢查該列,並在那里僅提供0。

我不是100%知道您要問什么,但我假設您需要AnswerText屬性為int而不是int? 當項目不存在時,應將它們設置為0 您可以使用?? 操作員:

var data = from at in answerText.AsEnumerable()
           join qa in questionAvg.AsEnumerable() on at.Field<int>("ID") equals qa.Field<int>("DealerID")
           join inter in interviews.AsEnumerable() on at.Field<int>("ID") equals inter.Field<int>("DealerID")
           select new
           {
               DealerID = at.Field<int>("ID"),
               DealerName = at.Field<string>("Name"),
               AnswerText1 = at.Field<int?>("12") ?? 0,                           
               AnswerText2 = at.Field<int?>("8") ?? 0,
               AnswerText3 = at.Field<int?>("4") ?? 0,
               AnswerText4 = at.Field<int?>("0") ?? 0,
               AnswerText5 = at.Field<int?>("-4") ?? 0,
               Rank = qa.Field<Int64?>("Rank"),
               Average = qa.Field<decimal?>("Average"),
               N = inter.Field<int?>("N")
           };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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