2017-02-07 3 views
0

私はSQL文のように、私はリターンとして何を使うのですかDapperでSQL Group ByとSQL Aggregatesのデータを使用して表示するにはどうすればよいですか?

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

がDapperのドットネットを使用して、私のビューで表示、それを入力している場合は? ViewData["mydata"]を試してみましたが、List<dynamic>を使用しようとしましたが、戻り値の型がIActionResultであり、列挙子がないため反復できませんでした。 IEnumerableで特定のタイプにキャストすることはできません(私は方法がわかりません)。(アカウント、人など)のようなカスタムタイプがないためです。これらのどれも列挙のための特性を持たない。

必要がない限り、私はLinqを使用しません。

答えて

1

、Dapperの使い方結果セットアイテム

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(); 
} 

今すぐあなたのビューにそれを渡すために、POCOを作成します。あなたのビューはあなたのアクションメソッド(List of GroupedData)から渡しているタイプと厳密に型付けされていることを確認してください。このリストを列挙できます。

@model List<GroupedData> 
@foreach(var item in Model) 
{ 
    <p>@item.TransactionDate</p> 
    <p>@item.TotalRows</p> 
} 
関連する問題