我是表达式树的新手,不知道如何实现以下内容。将感谢任何想法或链接。
我有 2 个实体需要映射到相应的视图模型。我希望映射器成为独立的表达式,可以在我的应用程序的各个部分中重用。
这个映射器表达式是将 MainEntity 转换为 MainEntityViewModel:
public static Expression<Func<MainEntity, MainEntityViewModel>> MainMapper =
me => new MainEntityViewModel()
{
Property1 = me.Property1, // direct mapping
OtherEntityModel = new OtherEntityViewModel() // here i'd like to use outer expression
{
Name = me.OtherEntityObject.Name,
Description = me.OtherEntityObject.Description
}
};
我还希望我的 OtherEntity 是一个单独的表达式,如下所示:
public static Expression<Func<OtherEntity, OtherEntityViewModel>> OtherMapper =
oe => new OtherEntityViewModel()
{
Name = oe.Name,
Description = oe.Description
};
但我不知道如何在第一个映射器中应用它。我想我需要以某种方式扩展第一棵树(添加表达式节点或其他),但不知道该怎么做。
谢谢!
PS:我知道 AutoMapper 等,但想使用手动映射。