0

コントローラは、D3.js折れ線チャートのソースとして使用されているデータを返す必要があります。コントローラでは、オブジェクトのリストを持っていて、プロパティ "Begin"とcount(Begin)だけに興味があります。開始は日時であり、「開始」が同じ日にあるすべてのオブジェクトをグループ化して、毎日の数を数えることが必要です。

私はこの情報を選択してこのように返すようにしています。

        var results = from a in db.Questionaires
                  group a by a.Begin.Date into g
                  select new { Date = g.Key, Count = g.Count() };

        return Json( results, JsonRequestBehavior.AllowGet);

残念ながら、group by句が間違っているようです(「指定された型メンバー 'Date'は、LINQ to Entitiesではサポートされていません。初期化子、エンティティメンバー、およびエンティティナビゲーションプロパティのみがサポートされています)」。

正しい方法で情報を選択する方法誰かがD3.jsとMVCに関するいくつかの例を持っているなら、私はそれを評価するでしょう。

1 답변


1

あなたはこれを試すべきです

var results = from a in db.Questionaires
                  group a by new { y = a.Begin.Year, m = a.Begin.Month, d = a.Begin.Day} 
                  into g
                  select new { Day = g.Key.d, Year = g.Key.y, 
                              Month = g.Key.m, Count = g.Count(),
                              Date = g.Select(d=>d.Begin).FirstOrDefault() };


  • ありがとうございます。結果としてDate(dd.mm.yyyy)とCountだけを使用したい場合は、どうすればよいですか。連結(.. + "。" + ..)が機能しませんでした - peter
  • データベースサーバーで実行されるlinqクエリで直接実行できるかどうかはわかりません。それらの内部値を使用してあなたにDate / DateTimeオブジェクトを与えることになるオブジェクトの読み取り専用プロパティを持っているかもしれません。 - AD.Net
  • 少し修正しました。日時を取得するためにそれができるかどうかを確認してください - AD.Net

関連する質問

最近の質問