2013-09-18 2 views
2

У меня есть два объекта (ChildA и ChildB), наследуемые от того же объекта (Parent). Таким образом, два выражения каждого из дочерних организаций являются следующие:Как объединить два лямбда Выражение <Func>

Expression<Func<T, Parent>> aExpression = t=> t.ChildAs.OrderByDescending(o => o.CreatedDate).FirstOrDefault();

Expression<Func<T, Parent>> bExpression = t => t.ChildBs.OrderByDescending(o => o.CreatedDate).FirstOrDefault();

CreatedDate является полем в Parent сущности. Я хочу объединить эти два выражения и поставить условия на окончательное выражение. Как их объединить?

+0

Возможный дубликат: http://stackoverflow.com/questions/457316/combining-two-expressions-expressionfunct-bool?rq=1 – dotNET

+0

Не могли бы вы опубликовать Parent и классы ChildA/B? – Toto

+0

Просьба пояснить, что вы подразумеваете под «объединением» выражений? Вы хотите получить выражение, которое содержит некоторые законы? Является ли «объединение» двух выражений еще в форме «Выражение >'? –

ответ

0

Поскольку моим требованием было получить последнего родителя t, я не смог найти способ сделать это через союз. Но я мог бы сделать это таким образом,

Expression<Func<T, Parent>> latestParentExpression = t => (aExpression.Invoke(t).CreatedDate >= bExpression.Invoke(t).CreatedDate)?aExpression.Invoke(t):bExpression.Invoke(t);

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