私は私の.netアプリで次の機能LINQを持っています
public ActionResult Index()
{
Dictionary<DateTime?, List<Event>> result;
result = (from events in db.Events.Include("Activity")
where events.IsActive
group events by DbFunctions.TruncateTime(events.DateTimeFrom) into dateGroup
select new { EventDate = dateGroup.Key, Events = dateGroup.ToList() }).ToDictionary(x => x.EventDate, x => x.Events);
return View(result);
}
これをASP .NET COREで使用すると、DbFunctionsを使用できません。 Microsoft.EntityFrameworkCoreで動作させるには、これをどのように書き換えることができますか?私はそれが違いをもたらす場合はSQLiteを使用しています。
何らかの理由で後でサポートされないため、EF6ではDbFunctions.TruncateTime
がDateTime.Date
プロパティの代わりに使用されます。
EF Coreでは、 DateTime.Date
が正しく認識され、正しく変換されたため、前者は必要ありません。
group events by events.DateTimeFrom.Date into dateGroup
残念ながら、サポートされているものはまだありません。そのため、一般的な経験則として、対応するCLRメソッド/プロパティ(存在する場合)を試し、SQLに変換するかどうかを確認してください。