如何解决如何在实体框架C#中使用多个分组依据?
我有一个针对多个分组的SQL查询
from datetime import datetime
month1 = '1982-01'
date = datetime(month1.split('-')[0],month1.split('-')[1],1)
milliseconds = int(round(date.timestamp() * 1000))
现在,我需要将此SQL查询更改为Entity Framework。到目前为止,我尝试过的是
select COUNT(Count) as Count,City,State,ZipCode from ZipSearchHistories Group By City,ZipCode
但是没有用。我该如何解决?
解决方法
因此,您有一个ZipSearchHistories
序列。此序列中的每个ZipSearchHistory至少都有一个ZipCode,一个州和一个城市。
其中一些ZipSearchHistories具有与{ZipCode,州,城市}相同的值。您要为{ZipCode,州,城市}的每个组合计算具有此组合的ZipSearchHistories的数量。
您是对的,为此,您需要one of the overloads of Queryable.GroupBy。我最经常使用具有参数resultSelector的重载。使用此参数,您可以指定每个组的输出。
var result = dbContext.ZipSearchHistories(
// parameter keySelector: make groups with same values for {ZipCode,State,City}
zipSearchHistory => new
{
ZipCode = zipSearchHistory.ZipCode,State = zipSearchHistory.State,City = zipSearchHistory.City,},// parameter resultSelector: for every key {ZipCode,City},// and all ZipSearchHistories that have this {ZipCode,City} make one new:
(key,zipSearchHistoriesWithThisKey) => new
{
ZipCode = key.ZipCode,State = key.State,City = key.City,Count = zipSearchHistoriesWithThisKey.Count(),})
换句话说:组成ZipSearchHistories组,它们对{ZipCode,州,城市}具有相同的值。从每个组(所有元素都有此{ZipCode,州,城市})中创建一个新对象,该对象具有这些{ZipCode,州,市}和组中元素的数量。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。