陈思涵

学习.Net

 

linq 聚合函数使用

dbtestEntities db = new dbtestEntities(); return from t in db.Fcount group t by t.fid into m select new Model.Number { id = m.Key, Count = m.Count() };

sql:

select t.typeid,t.typename ,isnull(n.numbers,0) as numbers from typenews t left join

(select typeid,COUNT(*) as numbers from NewsContent group by TypeID) n
on t.typeid=n.TypeID

from t in db.typenews
join n in (
(from t0 in db.NewsContent
group t0 by new {
t0.TypeID
} into g
select new {
TypeID = (System.Int32?)g.Key.TypeID,
numbers = (Int64?)g.Count()
})) on new { typeid = t.typeid } equals new { typeid = Convert.ToInt32(n.TypeID) } into n_join
from n in n_join.DefaultIfEmpty()
select new {
typeid = (System.Int32?)t.typeid,
t.typename,
numbers = ((int?)n.numbers ?? (int?)0)
}

 

 

 

posted on 2012-04-20 13:07  陈思涵  阅读(667)  评论(0编辑  收藏  举报

导航