如何联合两个 lambda 表达式

本文关键字:表达式 lambda Func 两个 何联 | 更新日期: 2023-09-27 18:31:49

我有两个实体(ChildAChildB)继承自同一个实体(Parent)。因此,子实体中的两个表达式如下所示:

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字段。我想将这两个表达式结合起来,并对最终表达式设置条件。如何结合这些?

如何联合两个 lambda 表达式<Func>

由于我的要求是获得最新的 t 父级,我找不到通过联合的方法。但我可以这样做,

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