2017-09-07 44 views
0

使用的OData與Automapper和EF核心暴露出下面的數據模型,最小化DB調用Automapper可查詢擴展

  1. 客戶
  2. CustomerMetric:CustomerLevel,VIPFlag,其他領域...

客戶與CustomerMetric有一對多的關係。目標是讓客戶控制器在CustomerMetric表的第一個匹配行中公開CustomerLevel,VIPFlag。

我在地圖上的配置做了什麼,

  • .ForMember(DEST => dest.CustomerLevel,選擇=> opt.MapFrom(SRC => src.CustomerMetric.FirstOrDefault()級別))
  • .ForMember(DEST => dest.VIPFlag,選擇=> opt.MapFrom(SRC => src.CustomerMetric.FirstOrDefault()。VIPFlag))

這一切良好,值被正確填充。但是,automapper會觸發兩個對數據庫的調用,其中'select top 1 CustomerLevel'和另一個調用'select top 1 VIPFlag'。

如何使用一次調用來獲取兩個字段而不是兩個調用每個字段的可能性?我試過了。包括在控制器上它不起作用..

謝謝!!

回答

0

您可以嘗試將這兩個分組在結構或類中,然後映射整個事物。這將在EF6工作,我不知道EF核心。見this