internal TElement ReturnSingleton <TElement>(Expression expression) { IQueryable <TElement> query = new TableQuery <TElement>(expression, this); MethodCallExpression mce = expression as MethodCallExpression; SequenceMethod sequenceMethod; if (ReflectionUtil.TryIdentifySequenceMethod(mce.Method, out sequenceMethod)) { switch (sequenceMethod) { case SequenceMethod.Single: return(query.AsEnumerable().Single()); case SequenceMethod.SingleOrDefault: return(query.AsEnumerable().SingleOrDefault()); case SequenceMethod.First: return(query.AsEnumerable().First()); case SequenceMethod.FirstOrDefault: return(query.AsEnumerable().FirstOrDefault()); /* * if !ASTORIA_LIGHT && !WINDOWS_RT * case SequenceMethod.LongCount: * case SequenceMethod.Count: * return (TElement)Convert.ChangeType(((TableQuery<TElement>)query).GetQuerySetCount(this.Context), typeof(TElement), System.Globalization.CultureInfo.InvariantCulture.NumberFormat); * //#endif */ } } throw new NotSupportedException(string.Format(CultureInfo.InvariantCulture, SR.ALinqMethodNotSupported, mce.Method.Name)); }