LINQ несколько детей в 1 ряду - PullRequest
0 голосов
/ 17 октября 2010

Мои таблицы имеют следующую структуру:

Вопросы

id  title
1   what is this?

Ответы

id   answer qid
1    an     1

Я хочу выбрать вопрос и все ответы в одной строке через LINQ?

Как я могу это сделать?

1 Ответ

1 голос
/ 17 октября 2010

В дополнение к ответу Хасана, если вы используете LinqToSql и ваши отношения установлены правильно, тогда код должен быть просто:

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

Ответы должны тогда уже быть доступными длявы через свойство:

var answers = question.Answers;

Поскольку предположительно у вас есть фактические отношения, определенные между question.Id и answer.Qid.

Обновление:

В ответ на комментарии ОП, вот как вы можете вернуть все данные в одну строку:

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 ответами.Очевидно, что добавление дополнительных ответов требует настройки этого утверждения, поскольку оно сглажено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...