diff --git a/SalesforceApiClient.cs b/SalesforceApiClient.cs
index 4afffd6..7f26cdb 100644
--- a/SalesforceApiClient.cs
+++ b/SalesforceApiClient.cs
@@ -357,9 +357,9 @@ namespace Salesforce.NET
/// Retrieves Salesforce records using an object query expression
///
///
- ///
+ ///
///
- public async Task> QueryAsync(Expression> query) where T : SalesforceEntity
+ public Task> QueryAsync(Expression> queryExpression) where T : SalesforceEntity
{
var salesforceObject = GetObjectName();
@@ -378,9 +378,31 @@ namespace Salesforce.NET
.Join(", ");
// generate a SQL clause from the query expression
- var clause = ConvertExpression(query.Body);
+ var clause = ConvertExpression(queryExpression.Body);
- var queryApiUrl = await GetEndpointUrlAsync($"query?q=select {properties} from {salesforceObject} where {clause}");
+ var query = $"select {properties} from {salesforceObject} where {clause}";
+
+ return QueryAsync(query);
+ }
+
+ ///
+ /// Retrieves Salesforce records using a custom query
+ ///
+ /// A custom SOQL query
+ ///
+ public Task> QueryAsync(string query)
+ {
+ return QueryAsync(query);
+ }
+
+ ///
+ /// Retrieves Salesforce records using a custom query
+ ///
+ /// A custom SOQL query
+ ///
+ public async Task> QueryAsync(string query)
+ {
+ var queryApiUrl = await GetEndpointUrlAsync($"query?q={query}");
return await InvokeRequestAsync(async httpClient =>
{