首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IMongoQueryable抛出错误的AutoMapper .ProjectTo()方法

IMongoQueryable抛出错误的AutoMapper .ProjectTo()方法
EN

Stack Overflow用户
提问于 2021-03-11 15:30:57
回答 1查看 295关注 0票数 0

下面的代码给出了这个错误。我最近改用了MongoDb,而不是Ef。看起来,automapper并没有将对象包含在其中,而是一个序列化的表单"{document}“或其他任何东西。无法找到很多关于这一点,也调试了自动代码,但似乎无法弄清楚为什么会发生这种情况。

错误:

表达式树({document})中不支持

GetPartyFullName类型的Application.Read.Common.Helpers.MapHelpers。

代码语言:javascript
运行
复制
var partiesList = await parties
            .OrderByDescending(x => x.Created)
            .ThenBy(x => x.Name) // this is IOrderedMongoQueryable
            //.AsQueryable() => not working either
            .ProjectTo<PartyDto>(_mapper.ConfigurationProvider)
            .PaginatedListAsync(request.PageNumber, request.PageSize);

映射

代码语言:javascript
运行
复制
... code
profile.CreateMap<Party, PartyDto>()
            .ForMember(d => d.FullName, opt => opt.MapFrom(s => MapHelpers.GetPartyFullName(s)));
... more code

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-11 16:12:50

在使用.ProjectTo扩展时,automapper将将其转换为select操作。

根据文档:The .ProjectTo<OrderLineDTO>() will tell AutoMapper’s mapping engine to emit a select clause to the IQueryable...

因此,很可能mongo查询转换器只是不支持您的MapHelpers.GetPartyFullName函数。尝试在.MapFrom(...)调用中直接重写您的映射。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66585576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档