【问题标题】:Entity Framework order by after ThenInclude()实体框架在 ThenInclude() 之后排序
【发布时间】:2018-07-17 12:54:12
【问题描述】:

我正在返回一个实体:

var entity = _context.Note
            .Include(b => b.Flag)
            .Include(b => b.Status)
            .ThenInclude(b => b.Nav)
            .ThenInclude(bc => bc.Descr)
            .Include(b => b.File)
            .ThenInclude(b => b.TDom)
            .ThenInclude(b => b.LanguageNavigation)
            .FirstOrDefault(e => e.Id== id);

我想通过Date 订购TDom,但我不知道如何选择它?

我的 mapper.cs

CreateMap<Note, NoteViewDto>()
            .ForMember(dest => dest.EndDate, opt => opt.ResolveUsing<ViewEnddateResolver, DateTime?>(src => src.Enddate))
            .ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Pid))
            .ForMember(dest => dest.Status, opt => opt.MapFrom(src => Mapper.Map<Tpdomainvalue, IdName>(src.Status)))
            .ForMember(dest => dest.Descriptions,
                opt => opt.MapFrom(src => Mapper.Map<ICollection<TDom>, List<NoteViewDto>>(src.TDom))

                );

【问题讨论】:

  • 请注意,您要么 使用Include 使用 AutoMapper 将项目投射到 DTO。投影忽略 Include 语句。

标签: asp.net entity-framework automapper


【解决方案1】:

将您的映射调用更新为:

CreateMap<Note, NoteViewDto>()
    .ForMember(dest => dest.EndDate, opt => opt.ResolveUsing<ViewEnddateResolver, DateTime?>(src => src.Enddate))
    .ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Pid))
    .ForMember(dest => dest.Status, opt => opt.MapFrom(src => Mapper.Map<Tpdomainvalue, IdName>(src.Status)))
    .ForMember(dest => dest.Descriptions, opt => opt.MapFrom(src => Mapper.Map<ICollection<TDom>, List<NoteViewDto>>(src.TDom.OrderBy(e => e.Date))));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    相关资源
    最近更新 更多