gpt4 book ai didi

sql-server - Entity Framework 和按周分组并设置周开始日

转载 作者:行者123 更新时间:2023-12-03 22:16:53 25 4
gpt4 key购买 nike

我需要使用 Entity Framework(代码优先方法)和 SQL Server 为 ASP.NET Web 应用程序生成一周摘要。

更多应用程序在客户端运行,服务器仅通过 OData (Breeze.js) 提供对实体的访问。不幸的是,Breeze 不支持聚合函数,所以我必须在服务器端实现一些 Controller 操作,以用于需要的一些更复杂的查询,例如这个:

var query = from r in db.Context.Records
where r.MeasurementId == measurementId
group r by SqlFunctions.DatePart("WK", r.Time) into g
select new
{
Time = g.Min(r => r.Time),
MinImport = g.Min(r => r.Import),
...
};

我正在使用 LINQ 而不是上下文 SqlQuery<T> ,因为它返回 IQueryable而不是 IEnumerable .

问题出在日期上。记录按周分组,但默认情况下周从星期日开始,但我需要它从星期一开始。这可以很容易地通过运行在纯 SQL 中修复:

SET DATEFIRST 1;

但我在 Entity Framework 中找不到任何解决方案。是否可以在 DbContext 之后或期间运行一些查询?初始化设置 DATEFIRST

最佳答案

尝试:

var query = from r in db.Context.Records
where r.MeasurementId == measurementId
group r by SqlFunctions.DatePart("WK", SqlFunctions.DateAdd("Day",-1,r.Time)) into g
select new
{
Time = g.Min(r => r.Time),
MinImport = g.Min(r => r.Import),
...
};

关于sql-server - Entity Framework 和按周分组并设置周开始日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18948281/

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