我目前有这样的代码:
public override Expression<Func<ITask, TaskDto>> ConvertEntityToDto()
{
return t => t.TypeDiscriminator == guid ? new SimpleTaskDto((ISimpleTask)t) : new TaskDto(t);
}
它工作得很好,有时SimpleTaskDto,有时TaskDto,一切都按预期返回。
事实上,我想让它变得更难一些 - 返回对 fooGuid - FooTaskDto known in runtime ,FooTaskDto对于未知的 - TaskDto。
这可以使用表达式构建吗?如果没有,有哪些选择?
底线是,这是实体从 base 到 Dto 转换的一部分,如果我选择了错误的类型,那么我会丢失一些有用的字段,这迫使我提出单独的请求,尽管我本可以做到它就在这里。
看。您可以手动构建相同的内容并迭代地添加条件。
让我们写一个类似这样的表达式:
这是一个例子: