Пусть у нас есть две сущности (БД) связанные между собой.
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 верно?
Здравствуйте, Аноним, Вы писали:
А>Задача — выбрать те записи из сущности 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))