Как я использовал Count(*) с DAL2?
Я хочу получить подсчеты для различных групп данных в некоторых из моих таблиц и не уверен, возможно ли это с помощью DAL2.
Я хочу выполнять запросы, такие как:
SELECT DISTINCT productType, COUNT(*) FROM Products GROUP BY productType
Информация, с которой я сталкиваюсь, включает только примеры, которые позволяют пользователю указывать WHERE-часть SQL. К сожалению, этот пример обходит часть запроса WHERE, поэтому я не уверен, как мне подходить к этому, используя DAL2. Возможно ли использовать DAL2 или мне нужно запросить базу данных другим способом? Если это можно сделать с помощью DAL2, как мне выполнить такой запрос?
2 ответа
Примеры, показывающие только часть WHERE, означают, что PetaPoco заполняет "SELECT * FROM TableName"
часть для вас, но, конечно, вы можете выполнить свой собственный оператор SQL
В твоем случае:
public class ProductCount {
public int ProductType {get; set;}
public int Count {get; set;}
}
var ProductCountList = db.Fetch<ProductCount>(@"SELECT DISTINCT productType,
COUNT(*) as Count
FROM Products
GROUP BY productType");
Я не могу сказать вам, что такое лучшая практика. Но у меня есть серверная часть SQL и я использую dal2 с модулем dnn. Я только что создал представление на сервере SQL с моей группировкой и объединениями, а затем отобразил это представление как таблицу (используйте имя представления вместо имени таблицы в аннотациях класса) с автоматическим приращением false. Работал на меня, и я получаю выгоду от скомпилированных и не динамических запросов. Если вам нужно сгенерировать это динамически, я не уверен, что лучший подход.
Я хотел бы услышать от других участников об этом.