Problems returning an IQueryable list to convert it with Automapper

0

I have a function that returns me a list of people with their personal / legal relationships. I have a PersonViewModel that is already mapped in the Autommapper layer ... When I call the GetJoinAll () function it has to return an IQueryable of People, but it is giving an error:

+		$exception	{System.Exception: Can't resolve this to Queryable Expression
   at AutoMapper.QueryableExtensions.ExpressionBuilder.ResolveExpression(PropertyMap propertyMap, Type currentType, Expression instanceParameter, LetPropertyMaps letPropertyMaps)
   at AutoMapper.QueryableExtensions.ExpressionBuilder.<CreateMemberBindings>g__CreateMemberBinding|15_0(PropertyMap propertyMap, <>c__DisplayClass15_0& )
   at AutoMapper.QueryableExtensions.ExpressionBuilder.CreateMemberBindings(ExpressionRequest request, TypeMap typeMap, Expression instanceParameter, IDictionary'2 typePairCount, LetPropertyMaps letPropertyMaps)
   at AutoMapper.QueryableExtensions.ExpressionBuilder.CreateMapExpressionCore(ExpressionRequest request, Expression instanceParameter, IDictionary'2 typePairCount, TypeMap typeMap, LetPropertyMaps letPropertyMaps)
   at AutoMapper.QueryableExtensions.ExpressionBuilder.CreateMapExpression(ExpressionRequest request, IDictionary'2 typePairCount, LetPropertyMaps letPropertyMaps)
   at AutoMapper.QueryableExtensions.Impl.EnumerableExpressionBinder.BindEnumerableExpression(IConfigurationProvider configuration, PropertyMap propertyMap, ExpressionRequest request, ExpressionResolutionResult result, IDictionary'2 typePairCount, LetPropertyMaps letPropertyMaps)
   at AutoMapper.QueryableExtensions.ExpressionBuilder.<CreateMemberBindings>g__CreateMemberBinding|15_0(PropertyMap propertyMap, <>c__DisplayClass15_0& )
   at AutoMapper.QueryableExtensions.ExpressionBuilder.CreateMemberBindings(ExpressionRequest request, TypeMap typeMap, Expression instanceParameter, IDictionary'2 typePairCount, LetPropertyMaps letPropertyMaps)
   at AutoMapper.QueryableExtensions.ExpressionBuilder.CreateMapExpressionCore(ExpressionRequest request, Expression instanceParameter, IDictionary'2 typePairCount, TypeMap typeMap, LetPropertyMaps letPropertyMaps)
   at AutoMapper.QueryableExtensions.ExpressionBuilder.CreateMapExpression(ExpressionRequest request, IDictionary'2 typePairCount, LetPropertyMaps letPropertyMaps)
   at System.Lazy'1.ViaFactory(LazyThreadSafetyMode mode)
   at System.Lazy'1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
   at System.Lazy'1.CreateValue()
   at AutoMapper.QueryableExtensions.ExpressionBuilder.GetMapExpression(Type sourceType, Type destinationType, IDictionary'2 parameters, MemberInfo[] membersToExpand)
   at AutoMapper.QueryableExtensions.ProjectionExpression.To[TResult](IDictionary'2 parameters, IEnumerable'1 memberPathsToExpand)
   at AutoMapper.QueryableExtensions.Extensions.ProjectTo[TDestination](IQueryable source, Expression'1[] membersToExpand)
   at SistemaComercial.Application.Services.PessoaAppService.GetJoinAll() in C:\Users\JALBER\Desktop\Projeto_Atual\SistemaComercial\src\SistemaComercial.Application\Services\PessoaAppService.cs:line 119
   at SistemaComercial.Presentation.Web.MVC.Controllers.PessoaController.Index() in C:\Users\JALBER\Desktop\Projeto_Atual\SistemaComercial\src\SistemaComercial.Presentation.Web.MVC\Controllers\PessoaController.cs:line 31
   at lambda_method(Closure , Object , Object[] )
   at Microsoft.Extensions.Internal.ObjectMethodExecutor.Execute(Object target, Object[] parameters)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeActionMethodAsync>d__12.MoveNext()}	System.Exception

public class PessoaViewModel
    {
        [Key]
        [DisplayName("Código")]
        public int Id { get; set; }
        [DisplayName("Natureza")]
        [Required(ErrorMessage ="Escolha uma Natureza")]
        public PessoaNatureza PessoaNatureza { get; set; }
        [DisplayName("Natureza")]
        public string PessoaNaturezaDescricao { get; set; }
        [DisplayName("Naturezas")]
        public IEnumerable<SelectListItem> PessoasNaturezas { get; set; }

        public PessoaEntidadeViewModel PessoaEntidadeViewModel { get; set; }
        public IEnumerable<PessoaEntidadeViewModel> PessoasEntidades { get; set; }
        public IEnumerable<PessoaEntidadeViewModel> PessoasEntidadesFiliais { get; set; }

        public  PessoaFisicaViewModel PessoaFisicaViewModel { get; set; }
        public  PessoaJuridicaViewModel PessoaJuridicaViewModel { get; set; }

        public PessoaViewModel()
        {
            PessoasNaturezas = ExtensaoDeEnumerador.EnumParaSelectListGenerico<PessoaNatureza>("", PessoaNatureza.ToString()).OrderBy(x => x.Text);
            PessoaFisicaViewModel = null;
            PessoaJuridicaViewModel = null;
        }

 public IEnumerable<PessoaViewModel> GetJoinAll()
{
   return _pessoaRepository.GetJoinAll().ProjectTo<PessoaViewModel>();
}

 public IQueryable<Pessoa> GetJoinAll()
 {
    var pessoas = Db.Pessoa
    .Include(pe => pe.PessoasEntidades)
    .Include(pe => pe.PessoasEntidadesFiliais)
    .Include(pe => pe.PessoaJuridica)
    .Include(pe => pe.PessoaFisica)
    .ToList();
    
     return pessoas.AsQueryable();
 }

  //Mapeamento PessoaViewModel
            CreateMap<Pessoa, PessoaViewModel>()
                .ForMember(dest => dest.Id,
                    opt => opt.ResolveUsing(entity => entity.Id))
                .ForMember(dest => dest.PessoaNatureza,
                    opt => opt.ResolveUsing(entity => entity.PessoaNatureza))
                .ForMember(dest => dest.PessoaNaturezaDescricao,
                    opt => opt.ResolveUsing(entity => entity.PessoaNatureza.ObterDescricaoEnum()))
                .ForMember(dest => dest.PessoaFisicaViewModel,
                    opt => opt.ResolveUsing(entity => entity.PessoaFisica))
                .ForMember(dest => dest.PessoaJuridicaViewModel,
                    opt => opt.ResolveUsing(entity => entity.PessoaJuridica))
                .ForMember(dest => dest.PessoasEntidades,
                    opt => opt.ResolveUsing(entity => entity.PessoasEntidades))
                .ForMember(dest => dest.PessoasEntidadesFiliais,
                    opt => opt.ResolveUsing(entity => entity.PessoasEntidadesFiliais));

Why does this occur and how can I resolve it?

    
asked by anonymous 10.04.2018 / 00:39

0 answers