protected override Expression VisitMember(MemberExpression node) { var paramter = node.GetRoot() as ParameterExpression; var name = string.Join("/", node.GetMemberName()); if (!map[paramter].SelectMembers.Any(x => x.MemberPath == name)) { map[paramter].SelectMembers.Add(new SelectMember { MemberPath = name, IsComplexType = !(node.Member is PropertyInfo m && m.PropertyType.IsSimpleType()) });