【发布时间】:2018-04-27 16:02:31
【问题描述】:
我想通过添加来扩展现有表达式。 所以逻辑上我想要exp3:
exp1 = o => (((o.AuditDateTime > 10/04/2018 00:00:00) && (o.AuditDateTime < 18/04/2018 00:00:00)))
exp2 = o => (o.EventType == "X")
exp3 = o => (((o.AuditDateTime > 10/04/2018 00:00:00) && (o.AuditDateTime < 18/04/2018 00:00:00))) && (o.EventType == "X")
我有一个已定义 where 表达式的 IQueryable 实例,例如:
{AuditJournalEntity[].Where(o => (((o.AuditDateTime > 10/04/2018 00:00:00) AndAlso (o.AuditDateTime < 18/04/2018 00:00:00))))}
所以我可以使用 Arguments 数组 (Arguments[1]) 获取实际的 where 表达式:
{o => (((o.AuditDateTime > 10/04/2018 00:00:00) AndAlso (o.AuditDateTime < 18/04/2018 00:00:00)))}
但是,我不知道如何获取 UnaryExpression 的表达式主体部分,以便以后添加。 我想要的是这部分:
(((o.AuditDateTime > 10/04/2018 00:00:00) AndAlso (o.AuditDateTime < 18/04/2018 00:00:00)))
如果在调试中,它可以使用 UnaryExpressionProxy 实例来提供这部分,但我认为它是一个私有成员,所以不能真正使用它。 如果您需要更多信息,请告诉我。
【问题讨论】: