gpt4 book ai didi

c# - 使用 Entity Framework 分组

转载 作者:太空宇宙 更新时间:2023-11-03 20:56:46 25 4
gpt4 key购买 nike

我每天每半小时从市场收到 48 个文件。这些文件具有开始时间作为属性。我正在使用 Entity Framework 在 Web 应用程序中查看这些文件,因为这些文件有英国时间,但我在欧洲市场工作,交易日从前一天晚上 11 点开始,所以我想根据交易将这些组合在一起一天。

在 SQL 中,我可以通过以下方式完成此操作:

select cast(DATEADD(hour, 1, START_TIME) as date), count(cast(START_TIME as date)) 
from imbalancecost
group by cast(DATEADD(hour, 1, START_TIME) as date)

我正在尝试使用以下尝试在 C# 中实现类似的结果:

IEnumerable<IGrouping<DateTime, ImbalanceCost> imbalanceCost = db.ImbalanceCost.GroupBy(ic => ic.START_TIME).ToArray();

有什么方法可以先将小时添加到我的分组中,然后仅使用这个新计算值的日期部分吗?

最佳答案

Is there any means of first adding the hour onto my grouping and then using only the date part of this new calculated value?

在 LINQ to Entities (EF6) 中,这是分别使用规范函数的问题 DbFunctions.AddHoursDbFunctions.TruncateTime :

db.ImbalanceCost.GroupBy(ic => 
DbFunctions.TruncateTime(DbFunctions.AddHours(ic.START_TIME, 1)).Value)

请注意 .Value(或转换为 DateTime)是为了使结果成为 DateTime 而不是 DateTime?ic.START_TIME 不可为空的情况下由规范方法返回,因此您知道结果也不可为空。

关于c# - 使用 Entity Framework 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49736398/

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