C# 在实体框架为SqlFunctions.DatePart不工作的SQL Server上按ISO周号分组
我正在SQL Server上编写一个小程序,我想按ISO周数对记录进行分组C# 在实体框架为SqlFunctions.DatePart不工作的SQL Server上按ISO周号分组,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,我正在SQL Server上编写一个小程序,我想按ISO周数对记录进行分组 (from entity in context.Table group entity.ID by SqlFunctions.DatePart("ISO_WEEK", entity.Date) into grouped select new { week = grouped.Key, sum = grouped.Sum(x => x)
(from entity in context.Table
group entity.ID by SqlFunctions.DatePart("ISO_WEEK", entity.Date) into grouped
select new
{
week = grouped.Key,
sum = grouped.Sum(x => x)
}).ToList();
我得到了错误
方法System.Nullable1[System.Int32]DatePart(System.String,System.Nullable
1[System.DateTime])不支持转换为SQL
但是entity.Date
不是可为空的DateTime
,它是DateTime
我知道我可以先调用
.ToList()
在本地内存中获取结果并进行本地分组,但我想在服务器上执行此操作…稍微了解一下您的建议@csprabala,但它似乎不起作用。或者你有一个例子吗?我正在使用.NET4.5,我可以将DatePart
与DateTime
一起使用,可以为空也可以不为空。这是哪个版本的EF?其他数据函数是否也会出现同样的异常?除此之外,请注意,当您的实体跨越多年时,Iso周可能是一个非常薄弱的分组标准。此外,关于这些周数字的任何统计数据都是扭曲的,因为第53周的数据总是代表性不足。