public virtual IEnumerable <T> GetResultList(Expression expression) { var visitor = new QueryTranslationVisitor(new QueryAnalysisContext(entityContext._InternalServices.TypeTranslationUtil) { ModifyProjection = true }); var translationResults = visitor.GetTranslatedResults(expression); var tableEntityQuery = translationResults.AnalysisContext.RootEntityQuery.TableEntityQuery .Provider.CreateQuery(translationResults.TranslatedExpression); if (TypesUtil.IsPrimitiveDataType(typeof(T))) { return(tableEntityQuery as IEnumerable <T>); } else { var tableEntities = new List <object>(); foreach (object o in tableEntityQuery) { tableEntities.Add(o); } return(MakeResultList(tableEntities, translationResults.AnalysisContext.QueryableType.NonPrimitiveEnumerableItemType)); } }
public virtual T GetResult(Expression expression) { var visitor = new QueryTranslationVisitor(new QueryAnalysisContext(entityContext._InternalServices.TypeTranslationUtil) { ModifyProjection = true }); var translationResults = visitor.GetTranslatedResults(expression); var tableEntityQuery = translationResults.AnalysisContext.RootEntityQuery.TableEntityQuery; var tableEntity = tableEntityQuery.Provider.Execute(translationResults.TranslatedExpression); if (TypesUtil.IsPrimitiveDataType(typeof(T))) { return((T)tableEntity); } else { return(MakeResult(tableEntity, translationResults.AnalysisContext.QueryableType)); } }