簡體   English   中英

LINQ 1行中有多個子級

[英]LINQ multiple childs in 1 row

我的表結構如下:

問題

id  title
1   what is this?

答案

id   answer qid
1    an     1

我想通過LINQ在一行中選擇問題和所有答案嗎?

我怎樣才能做到這一點?

除了Hasan的答案,如果您使用的是LinqToSql並且您的關系已正確建立,則代碼應該簡單地是:

var question = questions.Single(x => x.Id == 3);

答案應該已經可以通過該屬性提供給您:

var answers = question.Answers;

因為大概您在question.Idanswer.Qid之間定義了實際的關系。

更新:

為了回應OP的評論,以下是將所有數據作為一行返回的方法:

var questionAndAnswers = questions
    .Where(x => x.Id == 3)
    .Select(x => new 
    {
        QuestionId = x.Id, 
        Question = x.Title, 
        Answer1 = x.Answers[0].Answer,
        Answer2 = x.Answers[1].Answer,
        Answer3 = x.Answers[2].Answer
    }).Single();

將返回一個帶有問題和3個答案的對象。 顯然,添加更多答案需要調整此語句,因為它已變平。

暫無
暫無

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

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