2011-01-06 2 views
3

У меня есть таблица под названием Text (то, что в имени), а также таблицу с именем TextTranslationsLinq: выбор элементов в N стороне 1 в: N отношении

Текст может иметь несколько texttranslations (texttranslation имеет textid FK to text.textid) Он также имеет свойство «перевод».

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

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

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

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

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

ответ

3
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(); 
+0

Спасибо, сработало! Не использовал. – Michel

Смежные вопросы