示例#1
0
        public IQueryable <TResult> To <TResult>(IObjectDictionary parameters,
                                                 params Expression <Func <TResult, object> >[] membersToExpand)
        {
            var members = GetMembers(membersToExpand);

            return(To <TResult>(parameters, members));
        }
示例#2
0
        private IQueryable <TResult> To <TResult>(IObjectDictionary parameters, MemberInfo[] members)
        {
            var mapExpr = _mappingEngine.CreateMapExpression(_source.ElementType, typeof(TResult), parameters, members);

            return(_source.Provider.CreateQuery <TResult>(
                       Expression.Call(
                           null,
                           QueryableSelectMethod.MakeGenericMethod(_source.ElementType, typeof(TResult)),
                           new[] { _source.Expression, Expression.Quote(mapExpr) }
                           )
                       ));
        }
示例#3
0
 public SourceSourceInjectedQuery(IQueryable <TSource> dataSource,
                                  IQueryable <TDestination> destQuery,
                                  IMapper mapper,
                                  IEnumerable <ExpressionVisitor> beforeVisitors,
                                  IEnumerable <ExpressionVisitor> afterVisitors,
                                  Action <Exception> exceptionHandler,
                                  IObjectDictionary parameters,
                                  MemberPaths membersToExpand,
                                  SourceInjectedQueryInspector inspector)
 {
     Parameters         = parameters;
     EnumerationHandler = (x => { });
     Expression         = destQuery.Expression;
     ElementType        = typeof(TDestination);
     Provider           = new SourceInjectedQueryProvider <TSource, TDestination>(mapper, dataSource, destQuery, beforeVisitors, afterVisitors, exceptionHandler, parameters, membersToExpand)
     {
         Inspector = inspector ?? new SourceInjectedQueryInspector(),
     };
     _exceptionHandler = exceptionHandler ?? ((x) => { });
 }
 public ISourceInjectedQueryable <TDestination> For <TDestination>(IObjectDictionary parameters, params string[] membersToExpand)
 {
     _parameters      = parameters;
     _membersToExpand = ReflectionExtensions.GetMemberPaths(typeof(TDestination), membersToExpand);
     return(CreateQueryable <TDestination>());
 }
 public ISourceInjectedQueryable <TDestination> For <TDestination>(object parameters, params Expression <Func <TDestination, object> >[] membersToExpand)
 {
     _parameters      = GetParameters(parameters);
     _membersToExpand = ReflectionExtensions.GetMemberPaths(membersToExpand);
     return(CreateQueryable <TDestination>());
 }
示例#6
0
        public IQueryable <TResult> To <TResult>(IObjectDictionary parameters, params string[] membersToExpand)
        {
            var members = GetMembers(typeof(TResult), membersToExpand);

            return(To <TResult>(parameters, members));
        }
示例#7
0
 public IQueryable <TResult> To <TResult>(IObjectDictionary parameters)
 {
     return(To <TResult>(parameters, new string[0]));
 }