我的数据库中有两个表,Building 和 Town。它们看起来像这样:
建造:
buildingid
buildingname
镇:
id
userid
buildingid
在 Town 中,用户拥有的每座建筑物都有一个入口。
我想要的是为具有给定用户 ID 的用户填充 GridView。此 GridView 应包括建筑物名称和建筑物数量。建造。我试过这个:
var buildings = (from Town in dc.Towns
join Building in dc.Buildings
on Town.buildingid equals Building.buildingid
select Building.buildingname);
gvBuildings.DataSource = buildings;
gvBuildings.DataBind();
但我不知道如何获得每个建筑物的数字。
我现在已经为此工作了一段时间,并且您的一些答案有效。我用过这段代码:
var buildings = dc.Towns
.Where(t => t.userid == userid)
.GroupJoin(dc.Buildings,
t => t.buildingid,
b => b.buildingid,
(Town, Buildings) => new
{
BuildningName = Buildings.First().buildingname,
Count = Buildings.Count()
});
gvBuildings.DataSource = buildings.ToList();
gvBuildings.DataBind();
当我运行此代码时,我的 GridView 最终看起来像这样:
我需要按组显示建筑物,按建筑物名称分组。我已经尝试了所有建议,但我无法让它发挥作用。