读书人

请教这个分组的sql写成linq是如何写呢

发布时间: 2014-01-14 23:14:00 作者: rapoo

请问这个分组的sql写成linq是怎么写呢?
根据站点ID来分组,可是站点ID为100的要和站点ID为0的分成一组,sql语句为:

SELECT CASE WHEN SITEID=0 OR SITEID=100 THEN 0 ELSE SiteID END AS Siteid,COUNT(1) FROM View_eBayOL_RepeatCount GROUP BY CASE WHEN SITEID=0 OR SITEID=100 THEN 0 ELSE SiteID END

现在linq写成
var query = (from p in eBayOLProductQuery
join site in db.Site on p.SiteID equals site.SiteId
group p by new { ebaySiteID = (p.SiteID == 100 ? 0 : p.SiteID) } into g
select new { ID = g.Key, TotalCount = g.Count() }).ToList();

不能实现想要的效果,请问要如何写呢?
[解决办法]
看着没有什么大问题啊,这点注意修改一下:

select new { ID = g.Key.ebaySiteID, TotalCount = g.Count() }).ToList();

读书人网 >.NET

热点推荐