加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – DbFunctions.TruncateTime在ASP .NET CORE中的LINQ等

发布时间:2020-12-16 03:43:44 所属栏目:asp.Net 来源:网络整理
导读:我的.net应用程序中有以下功能LINQ public ActionResult Index() { DictionaryDateTime?,ListEvent result; result = (from events in db.Events.Include("Activity") where events.IsActive group events by DbFunctions.TruncateTime(events.DateTimeFrom)
我的.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以及如何.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读