Linq: выберите элементы с N-стороны отношения 1: N - PullRequest
3 голосов
/ 06 января 2011

У меня есть таблица с именем Text (что в названии) и таблица с именем TextTranslations

Текст может иметь несколько текстовых переводов (texttranslation имеет текстовый заголовок FK для text.textid). Он также имеет свойство с именем 'translation '.

Теперь у меня есть список текстовых объектов, у всех из которых есть 1 или более дочерних объектов texttranslation.

, и я хочу сопоставить все текстовые объекты, у которых есть дочерний объект (texttranslation), сСвойство 'translation' равно чему-то.

, поэтому в псевдокоде это будет:

list.Where (1 или более z.childs.texttranslation содержит 'bla')

это возможно?

1 Ответ

3 голосов
/ 06 января 2011
from text in context.Text
    where text.TextTranslations.Any(tt => tt.Translation.Contains("bla"))
select text;

Или

context.Text
    .Where(
        text => text.TextTranslations.Any(tt => tt.Translation.Contains("bla")
     );

Или

(from textTranslation in context.TextTranslations
    where textTranslation.Translation.Contains("bla")
select textTranslation.Text)
.Distinct();

Или

context.TextTranslations
    .Where(textTranslation => textTranslation.Translation.Contains("bla"))
    .Select(textTranslation => textTranslation.Text)
    .Distinct();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...