我在我的數據庫中的兩個表:LINQ到SQL連接和組
鎮:
userid, buildingid
大廈:
buildingid, buildingname
我要的是填充這樣一個GridView:
但我不想讓建築物多次顯示。這裏是我的代碼:
var buildings = dc.Towns
.Where(t => t.userid == userid)
.GroupJoin(dc.Buildings,
t => t.buildingid,
b => b.buildingid,
(Towns, Buildings) => new
{
BuildningName = Buildings.First().buildingname,
Count = Towns.Building.Towns.Count()
});
gvBuildings.DataSource = buildings.ToList();
gvBuildings.DataBind();
新代碼的工作原理:
var buildings = (from t in dc.Towns
where t.userid == userid
join b in dc.Buildings
on t.buildingid equals b.buildingid
into j1
from j2 in j1.DefaultIfEmpty()
group j2 by j2.buildingname
into grouped
select new
{
buildingname = grouped.Key,
Count = grouped.Count()
});
gvBuildings.DataSource = buildings.ToList();
gvBuildings.DataBind();
我知道它的工作原理,請參閱編輯的新代碼=)謝謝! – Twistar 2012-04-27 09:19:52