如何使用AutoMapper映射集合中的第一个项目

Ste*_*ten 5 .net entity-framework automapper

我有一个与EF一起使用的对象,它有一个Bar的导航属性,它是一对多的,但应该是一对一的.无论如何,当我查询Foo时,我也想从Bar集合中获取第一个也是唯一一个项目,并将这些项目映射到一个扁平的Biz Dto,我将如何去做呢?

        var result = (from c in ctx.Foo
                     where c.Bar.Any(cs => cs.LOGINNAME == username && cs.PASSWORD == password)
        select c).First();
Run Code Online (Sandbox Code Playgroud)

然后在我的AutoMapper配置中,我创建了一个看起来像????的地图

        Mapper.CreateMap<Foo, Biz>()
            .ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.CLIENTID))
            .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Bar.FirstOrDefault???))
Run Code Online (Sandbox Code Playgroud)

谢谢你,斯蒂芬

Pat*_*ele 7

映射时FirstOrDefault()Bar集合上使用:

opt.MapFrom(src => src.Bar.FirstOrDefault())
Run Code Online (Sandbox Code Playgroud)