-
| Hi all, I am encountering an issue when Distinct is being used with AsCount. Any idea how to solve that issue? Or maybe the way how the For example the following query throws a sql error var query = new Query("Users") .Distinct() .Select("Users.Gender", "Roles.Name") .Join("Roles", "Users.Role", "Roles.Id") .AsCount(); |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
| Ok, I've found that providing a list of columns back to the query solves the problem. Can someone explain why do we replace a list of columns with * when we do AsCount. Just trying to understand whether there is a catch. My solution was to include all the select columns back to the query. I hope it could help others with the same issue. var query = new Query("Users") .Distinct() .Select("Users.Gender", "Roles.Name") .Join("Roles", "Users.Role", "Roles.Id"); query.AsCount(query.GetComponents<Column>("select").Select(x => x.Name).ToArray());As a result I created a helper method which allows to use AsCount in such way: public static Query AsCountWithColumns(this Query query) { if (query.IsDistinct) { var components = query.GetComponents("select"); var columns = components.Select(x => x is RawColumn ? (x as RawColumn).Expression : (x as Column).Name ).ToArray(); return query.AsCount(columns); } else { return query.AsCount(); } } |
Beta Was this translation helpful? Give feedback.
Ok, I've found that providing a list of columns back to the query solves the problem. Can someone explain why do we replace a list of columns with * when we do AsCount. Just trying to understand whether there is a catch.
My solution was to include all the select columns back to the query. I hope it could help others with the same issue.
As a result I created a helper method which allows to use AsCount in such way: