我的.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以及如何.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。