// Queryable's "single value" standard query operators call this method. // It is also called from QueryableTerraServerData.GetEnumerator(). public TResult Execute <TResult>(Expression expression) { //bool IsEnumerable = (typeof(TResult).Name == "IEnumerable`1"); var obj = DataQueryContext.Execute <TResult>(expression); var resultType = typeof(TResult); if (resultType.IsValueType || resultType == typeof(string)) { return(DataConvert.Convert <TResult>(obj));//例如求平均数,TResult可能是double,而实际得到的结果为int,int不能直接强制转换为double. } return((TResult)obj); }
public object Execute(Expression expression) { //return DataQueryContext.Execute(expression,false); return(DataQueryContext.Execute <object>(expression)); }