ASP .NET COREでDbFunctions.TruncateTime LINQに相当する

asp.net asp.net-core entity-framework-core linq sqlite

質問

私は私の.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.TruncateTimeDateTime.Dateプロパティの代わりに使用されます。

EF Coreでは、 DateTime.Dateが正しく認識され、正しく変換されたため、前者は必要ありません。

group events by events.DateTimeFrom.Date into dateGroup

残念ながら、サポートされているものはまだありません。そのため、一般的な経験則として、対応するCLRメソッド/プロパティ(存在する場合)を試し、SQLに変換するかどうかを確認してください。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ