コード例 #1
0
        public IQueryable CreateQuery(Expression expression)
        {
            if (_currentExpression == expression)
            {
                return(this);
            }

            Type elementType = TypeHelpers.FindElementType(expression);

            Type queryableType = TransformQueryableCache.GetTransformQueryableType(elementType);

            return((IQueryable)Activator.CreateInstance(
                       queryableType,
                       new object[] { _source, _typeMappings, _propertyMappings, _selectParameterMappings, _containerClassMappings, expression }));
        }
コード例 #2
0
        public object Execute(Expression expression)
        {
            MethodInfo methodInfo = TransformQueryableCache.GetTransformQueryableExecuteMethodInfo(typeof(T), expression.Type);

            return(methodInfo.Invoke(this, new object[] { expression }));
        }
コード例 #3
0
        IEnumerator IEnumerable.GetEnumerator()
        {
            MethodInfo methodInfo = TransformQueryableCache.GetTransformQueryableGetEnumeratorMethodInfo(typeof(T));

            return((IEnumerator)methodInfo.Invoke(this, null));
        }