Соединение слева на столе с отношением один ко многим - PullRequest
1 голос
/ 28 июля 2010

Заранее извиняюсь за помутнение, но эту проблему мне трудно объяснить (хотя я уверен, что это довольно распространенная проблема / решение).Я хочу выполнить запрос, выбирая строки из таблицы, объединенной с другой таблицей, где другая таблица является «многими» в отношении «один ко многим».Но одно из моих предложений where должно проверять множество частей для конкретного условия.Вот код с непонятной частью, заполненной псевдокодом.

var query = 
    from program in db.AcademicPrograms
        where program.ProgramTitle.StartsWith(Keyword.Text) || 
              program.ProgramDeptIDName.DeptName.StartsWith(Keyword.Text) || 
              program.AcademicProgramKeywords.Contains(
                                     <A value that starts with Keyword.Text>)
        select
            new
              {
                 program.ProgramTitle,
                 program.ProgramHomePage,
                 program.ProgramCode,
                 program.ProgramType
              };

1 Ответ

2 голосов
/ 28 июля 2010

Это должно работать для вас:

program.AcademicProgramKeywords.Any(apk => apk.Field.StartsWith(Keyword.Text))

По сути, это говорит:
Select AcademicPrograms where any of its AcademicProgramKeywords .Field properties starts with Keyword.Text.

Я оставлю вам разрешение .Field на правильное свойство.

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