[LINQ] Проверка поля в подмножестве
От: Аноним  
Дата: 12.11.10 09:59
Оценка:
Пусть у нас есть две сущности (БД) связанные между собой.

    public class Foo
    {
        public string Id;
        public bool Test;
        public IList<Bar> Bars;
    }

    public class Bar
    {
        public string FooId;
        public bool Test;
    }

Задача — выбрать те записи из сущности Foo, у которых Test == true, либо в дочерней сущности Bar у них Test == true. Как это сделать LINQ выражением? Что-то типа такого:
session.Linq<Foo>().Where(x => (x.Test)||(x.Bars.Test))

Насколько я понимаю, введение функции в Foo не поможет так как в Linq выражении нельзя вызывать функции, которые не могут быть преобразованы к SQL верно?
Re: [LINQ] Проверка поля в подмножестве
От: _FRED_ Черногория
Дата: 12.11.10 10:08
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Задача — выбрать те записи из сущности Foo, у которых Test == true, либо в дочерней сущности Bar у них Test == true.


У всех дочерних Bar "Test == true"
session.Linq<Foo>().Where(x => x.Test || x.Bars.All(b => b.Test))


или хотя бы у одной?
session.Linq<Foo>().Where(x => x.Test || x.Bars.Any(b => b.Test))
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.