【发布时间】:2019-12-19 08:20:50
【问题描述】:
我正在尝试使用 AutoMapper 将实体层次结构投影到某些 DTO。我正在使用 EntityFramework Core(迄今为止的最新稳定版本)。
层次结构真的很简单:
我有一个 Calculation,其中包含 参数集合。 参数可选地有一个计算,因此是递归的。
class Calculation
{
int Id {get; set; }
ICollection<Parameter> Parameters { get; set }
}
class Parameter
{
int Id {get; set; }
Calculation Calculation { get; set }
}
我想把它投影到一棵树上
Calc1
Param1
Param2
Param3
Calc2
Param4
Param4
我已经为 Calculation 和 Parameter 定义了 AutoMapper 映射,但是当我投影根实体时,我只能得到层次结构的第一级。
如何使 AutoMapper 自动进行递归投影?有没有办法做到这一点?
【问题讨论】:
-
如果这是一个 EF 模型
calc.Parameters().First().Calculation == calc将永远是真的。 -
我已经配置 EF 来避免这种情况 :) 我有父计算和子计算
标签: entity-framework entity-framework-core automapper iqueryable