次の LINQ-to-SQL を作成して、1 日ごとに合計レコード数を取得できるようにしました。
私のニーズに合うようにするために、いくつかの変更を加えたいと思います。いろいろ試してみましたが、うまくいきません。
この期間に「開封」がなかったとしても、過去 9 日間をリストしたいと思います。また、以下で行っているように、日だけでなく日/月でグループ化したいと思います。
私が取得したい出力の例は次のとおりです。
DateString Opens
===================
9/5 0
10/5 0
11/5 3
等...
public List<OpensOverTimeViewModel> GetOpensOverTimeViewModel(int eId)
{
DateTime lastDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day).AddDays(-9);
DateTime currentDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day).AddDays(1);
var summary = (from p in db.Opens
where (p.ElementId == eId) && (p.Timestamp >= lastDate) && (p.Timestamp <= currentDate)
let k = new
{
Day = p.Timestamp.Day
}
group p by k into t
select new OpensOverTimeViewModel
{
DateString = t.Key.Day,
TotalOpens = t.Count(),
ElementName = ""
}).ToList();
return summary;
}
これに取り組む最善の方法についての助けをいただければ幸いです。