如果您有一个对象,上面有一个集合作为对象的示例,则行为很明显,只需从集合中映射它,并且 EF Core 或类似中的查询将自动执行此操作(如果它是 IQueryable)。
如果在已经物化的对象上执行mapper.Map<>,就会出现问题。然后它必须使用数据上下文从数据库加载它。
AutoMapper 如何针对 IQueryable 与 IEnumerable 情况使用不同的策略?
AutoMapper 可以以不同的方式处理集合,具体取决于集合是 IQueryable 还是 IEnumerable。
对于 IQueryable,AutoMapper 可以在数据库中执行查询之前将映射配置直接应用于查询。
对于 IEnumerable,在这种情况下,AutoMapper 会迭代集合中的每个项目,应用对象到对象的映射规则。