C#Razor MVCプロジェクトのMySQLデータベースに対して、次のLINQクエリがあります。TruncateTime()を使用しないでLINQでグルーピングする
private Dictionary<DateTime?, int> getOrderQuantityDict(DateTime start, DateTime end, int siteCode)
{
return (from o in thisDataEntities.this_table
where o.created_at >= start
&& o.created_at <= end
&& o.store_id == siteCode
select new { OrderDate = o.created_at, Id = o.entity_id})
.GroupBy(q => q.OrderDate)
.ToDictionary(q => q.Key, q => q.Count());
}
1日ごとにグループ化する必要があります。今すぐq.OrderDateには時、分、秒があります。私はグループ化するときそれらを無視する必要があります。
トリッキーな部分:私はTruncateTime()
なしでこれを行う必要があります。ホストがDBを移動したときに何らかの理由でTruncateTime()
を使用できなくなりました。私たちのホストは、この問題に関してはあまり役に立っていませんでしたが、私は回避策が可能であると考えています。
'.GroupBy(q => q.OrderDate.Date)' –
@JeroenvanLangen - エンティティにLinqがプロパティ '.Date'をSQLに変換できないことを恐れています – Fabio