【发布时间】:2018-02-16 13:16:19
【问题描述】:
使用带有 Automapper 和 EF 核心的 OData 来公开下面的数据模型,
- 客户
- CustomerMetric:CustomerLevel、VIPFlag、其他字段...
Customer 与 CustomerMetric 有一对多的关系。目标是让 Customer 控制器在 CustomerMetric 表的第一个匹配行中公开 CustomerLevel,VIPFlag。
我在地图配置中做了什么,
- .ForMember(dest => dest.CustomerLevel, opt => opt.MapFrom(src => src.CustomerMetric.FirstOrDefault().Level))
- .ForMember(dest => dest.VIPFlag , opt => opt.MapFrom(src => src.CustomerMetric.FirstOrDefault().VIPFlag ))
这一切都很好,值被正确填充。但是,automapper 触发了对数据库的两次调用,“select top 1 CustomerLevel”和另一个“select top 1 VIPFlag”。
如何通过一次调用来获取两个字段而不是对每个单独的字段进行两次调用?我试过 .Include 在控制器上它不起作用..
谢谢!!
【问题讨论】:
标签: automapper