gpt4 book ai didi

c# - 如何在嵌套 AutoMapper Project().To<>() 后执行 LINQ 操作

转载 作者:太空宇宙 更新时间:2023-11-03 13:03:47 35 4
gpt4 key购买 nike

我在 C# LINQ 中嵌套了 Selects,并希望将它们转换为 AutoMapper 投影。

这是我原始查询的一部分:

.ThenByDescending(s => s.CreatedOn)
.Select(s => new SubmissionDetailsViewModel
{
// some mappings
Tests = s.TestRuns
.Select(tr => new TestRunViewModel
{
OrderBy = tr.Test.IsTrialTest ? TestCategoryType.Example : tr.Test.CategoryType,
// some other mappings
})
.GroupBy(tr => tr.OrderBy)
.OrderBy(tr => tr.Key)
})

如何配置 AutoMapper 进行投影,然后在投影的嵌套 View 模型上调用 GroupBy。由于表达式中的可选参数,使用 Project().To() 而不是嵌套的 Select 不会编译。我尝试使用 AfterMap() 但它并没有起到作用。我应该执行以下操作吗:

.CreateMap<ICollection<TestRun>, IOrderedEnumerable<IGrouping<TestCategoryType, TestRunViewModel>>>()
.ProjectUsing()

然后复制嵌套的Select?但是这样我需要自己输入选择而不是让 AutoMapper 为我投影它。有什么建议吗?

提前致谢!

最佳答案

相信这是 AutoMapper 的错误/缺点 - 它无法处理嵌套表达式。 4.0 版应该可以解决这个问题。

关于c# - 如何在嵌套 AutoMapper Project().To<>() 后执行 LINQ 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31502663/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com