public override string ToString() { var queryParser = FetchXmlQueryParserLoader.CreateFetchXmlQueryParser(); var queryModel = queryParser.GetParsedQuery(_expression); var queryMetadata = FetchXmlQueryModelVisitor.GetQueryMetadata(queryModel); var fetchXml = queryMetadata.GetFetchXmlQuery(); return(fetchXml); }
// Executes a query with a collection result. public IEnumerable <T> ExecuteCollection <T>(QueryModel queryModel) { var queryMetadata = FetchXmlQueryModelVisitor.GetQueryMetadata(queryModel); var result = ExecuteQuery <T>(queryModel, queryMetadata); var asEnumerable = (System.Collections.IEnumerable)(result); foreach (T rec in asEnumerable) { yield return(rec); } ; }
// Executes a query with a scalar result, i.e. a query that ends with a result operator such as Count, Sum, or Average. public T ExecuteScalar <T>(QueryModel queryModel) { var queryMetadata = FetchXmlQueryModelVisitor.GetQueryMetadata(queryModel); var result = ExecuteQuery <T>(queryModel, queryMetadata); var asEnumerable = (System.Collections.IEnumerable)(result); if (queryMetadata.IsCount) { int tot = 0; foreach (var res in asEnumerable) { tot++; } return((T)(object)tot); } return(ExecuteCollection <T>(queryModel).FirstOrDefault()); }