gpt4 book ai didi

entity-framework - 在 iEF 中将日期时间转换为日期

转载 作者:行者123 更新时间:2023-12-04 02:15:03 26 4
gpt4 key购买 nike

我有一个在 LinqPad 中按预期运行的 Linq 语句(使用 Linq to SQL),但是当我使用 EF 6 将它引入我的 C# 应用程序时,我收到一条错误消息,指出 cd.LogTimestamp.Date(在 GroupBy 语句中)不支持。我正在尝试将 datetime2 值转换为日期值以用于分组目的。

 helper.GetDbContext().SiteLog
.Where( sl => sl.SiteId == 3 )
.GroupBy( cd => new { cd.SiteId, cd.LogTimestamp.Date } )
.Select( g => new DailyTraffic()
{
SiteId = g.Key.SiteId,
TrafficDate = g.Key.Date,
NewUsers = g.Count( row => row.IsNewUser ),
ReturningUsers = g.Count( row => row.IsReturningUser ),
TotalUsers = g.Count( row => row.IsNewUser ) + g.Count( row => row.IsReturningUser ),
PageViews = g.Count( row => row.IsPageView )
} )
.OrderBy( g => g.SiteId ).ThenBy( g => g.TrafficDate )
.ToList();

是否有一种首选方法可以将 datetime2 值转换为 EF 6 中的 date

最佳答案

使用此 QA (how to use entity framework to group by date not date with time) 作为指南,您需要使用 EntityFunctions 以便您可以直接使用内置的 SQL Server 函数,这当然意味着您的应用程序不会不能立即移植到其他数据库。

.GroupBy( cd => new { cd.SiteId, EntityFunctions.TruncateTime( cd.LogTimestamp ) } )

关于entity-framework - 在 iEF 中将日期时间转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34826228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com