我正在嘗試做一個簡單的 EF 6.0 查詢,但它似乎無處可去,并且用它來敲我的頭。
我正在查詢以單行作為物件,但這會回傳如下所示的二維陣列;
[
[],
[],
[{
Id: 1,
Name: Abc
}]
]
我想回傳的是物件。
{
Id: 1,
Name: Abc
}
這是查詢
var q = _operatorAssessmentContext.OperatorAssessmentQuestions
.Select(x => x.ConditionalQuestions.Where(c => c.Id == questionId)).ToList();
所以整個想法是將二維串列更改為一個物件。
uj5u.com熱心網友回復:
首先,您說您想要一個物件,但您的變數q將是一個串列。我會假設你想要一個物件,正如你所說的那樣。
有幾種方法可以做到這一點:
- 您可以展平串列,然后取一個。
- 您可以過濾掉串列中的空串列,然后獲取串列中第一個串列的第一個物件。
就個人而言,我更喜歡第一個,進入變數q的查詢看起來像這樣:
var q = _operatorAssessmentContext
.OperatorAssessmentQuestions
.SelectMany(x => x.ConditionalQuestions.Where(c => c.Id == questionId))
.FirstOrDefault();
請注意,唯一的區別是我使用 .Select Many (),它會將包含某種型別元素T的串列串列作為輸入,并回傳一個包含相同型別元素T的串列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/496268.html
