【发布时间】:2020-02-14 11:40:29
【问题描述】:
我需要在 EF Core 选择期间执行多级 Include() 查询。我将 AutoMapper 与 ProjectTo<>() 一起使用。
我在映射ExplicitExpansion() 中指定了这意味着导航属性不会自动填充,因为我希望有可能多次执行相同的查询并且
一次Include() 导航属性,但第二次忽略它。
ProjectTo<>() 方法具有允许我将导航属性包含到我的选择中的参数,但我需要执行多级包含。这可能吗?像Include(e => e.Collection.Select(sc => sc.MyProperty)) 这样的语法在这种情况下不起作用。
我尝试将Include().ThenInclude() 用于DbContext,然后执行ProjectTo,但在这种情况下ProjectTo 会覆盖我的包含并且它们被忽略。
现在我不确定是否可以在映射中指定 ProjectTo、ExplicitExpansion() 并进行多级包含?
【问题讨论】:
-
你不需要
Include。 docs.automapper.org/en/latest/… -
@LucianBargaoanu 好吧...我需要它,因为 AutoMapper 支持 ProjectTo 方法内的一级包含,为什么它不支持二级包含的包含。
-
也许更仔细地阅读文档。或者查看 GitHub repo 中的相关测试。
标签: c# .net-core automapper entity-framework-core-3.1