日期:2014-05-20  浏览次数:20922 次

请问这个分组的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();