2017-02-07 13 views
0

Если у меня есть SQL заявление, как,Как использовать и просматривать данные из SQL Group By и SQL Aggregates с Dapper?

SELECT Count(id) as TotalRows, transaction_date 
FROM Accounts 
Group By transaction_date 

Что я использую в качестве возврата введите его отображения на мой взгляд, используя Dapper Dot Net? Я пробовал использовать ViewData["mydata"], и я пробовал использовать List<dynamic>, но я не мог итерации, потому что возвращаемый тип IActionResult и, как таковой, не имеет перечислителя. Я не могу использовать его (я не знаю, как это сделать) с определенным типом с IEnumerable, потому что нет специального типа (учетные записи, личность и т. Д.). Ни одно из них не имеет свойства для перечисления.

Я не хотел использовать Linq, если это необходимо.

ответ

1

Создать ПОКО, чтобы представить свой результат Устанавливаемая

public class GroupedData 
{ 
    public int TotalRows { set;get;} 
    public DateTime TransactionDate { set;get;} 
} 

Использование Щеголеватый, выполнить запрос и нагрузки результат в списке этого класса и передать на ваш взгляд

public IActionResult Index() 
{ 
    var groupedDataList = GetData(); 
    return View(groupedDataList); 
} 
private List<GroupedData> GetData() 
{ 
    var [email protected]"SELECT Count(id) as TotalRows, 
       transaction_date as TransactionDate 
      FROM Accounts 
      Group By transaction_date"; 
    return yourSqlConnection.Query<GroupedData>(q).ToList(); 
} 

Теперь сделайте убедитесь, что ваш вид строго типизирован тем же типом, который вы передаете из вашего метода действий (Список GroupedData). Вы можете перечислить этот список.

@model List<GroupedData> 
@foreach(var item in Model) 
{ 
    <p>@item.TransactionDate</p> 
    <p>@item.TotalRows</p> 
}