Как я использовал 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. Работал на меня, и я получаю выгоду от скомпилированных и не динамических запросов. Если вам нужно сгенерировать это динамически, я не уверен, что лучший подход.

Я хотел бы услышать от других участников об этом.

Другие вопросы по тегам