예제 #1
0
        } // GetOpenPropertyValue

        public IQueryable GetQueryRootForResourceSet(DSP.ResourceSet container)
        {
            List <RowEntityType>            list          = EntitySetDictionary[container.Name];
            IQueryable <RowEntityType>      realQueryable = list.AsQueryable();
            NonClrQueryProvider             provider      = new NonClrQueryProvider(realQueryable.Provider, this);
            NonClrQueryable <RowEntityType> queryable     = new NonClrQueryable <RowEntityType>(realQueryable, provider);

            if (container.ResourceType.InstanceType == typeof(RowEntityType))
            {
                return(queryable);
            }
            else
            {
                MethodInfo castMethod = typeof(Queryable).GetMethod("Cast", BindingFlags.Static | BindingFlags.Public);
                castMethod = castMethod.MakeGenericMethod(container.ResourceType.InstanceType);

                object newQueryable = castMethod.Invoke(null, new object[] { queryable });
                return(newQueryable as IQueryable);
            }
        } // GetQueryRootForResourceSet
예제 #2
0
 public NonClrQueryable(IQueryable queryable, NonClrQueryProvider provider)
 {
     this.queryable = queryable;
     this.provider  = provider;
 }