C# 在Linq中按组获取总记录
我在SQL中有一个查询,希望将其转换为Linq。我的问题是:C# 在Linq中按组获取总记录,c#,.net,linq,entity-framework,C#,.net,Linq,Entity Framework,我在SQL中有一个查询,希望将其转换为Linq。我的问题是: select count(tbs.tbsid) as CNTSeats,tbm.BusNo from tdp_tourpackageschedule tps join tdp_tourpackage tp on tp.TourID = tps.FK_TourID join tdp_tourbusseats tbs on tbs.tbsid = tps.fk_tbsid join tdp_tourbusmaster tbm on tbm
select count(tbs.tbsid) as CNTSeats,tbm.BusNo
from tdp_tourpackageschedule tps
join tdp_tourpackage tp on tp.TourID = tps.FK_TourID
join tdp_tourbusseats tbs on tbs.tbsid = tps.fk_tbsid
join tdp_tourbusmaster tbm on tbm.tbid = tbs.fk_tbid
where fk_tdid = @FKTDID and fk_TourID = @FKTourID and IsOpen = 1
group by tbm.BusNo
我尝试了以下代码:
var tourAvail = (from ts in entities.tdp_TourPackageSchedule
join tp in entities.tdp_TourPackage on ts.FK_TourID equals tp.TourID
join tbs in entities.tdp_TourBusSeats on ts.FK_TBSID equals tbs.TBSID
join tb in entities.tdp_TourBusMaster on tbs.FK_TBID equals tb.TBID
where ts.FK_TDID == TDID && ts.FK_TourID == TourID && ts.IsOpen == 1
group tb by tb.BusNo into cnt
select new
{
//BusNo = cnt.bu
//Count = cnt.Select(x => x.tdp_TourBusSeats).Distinct().Count()
});
我不知道如何计数记录,任何人都可以帮助我吗?请:
var tourAvail = (from ts in entities.tdp_TourPackageSchedule
join tp in entities.tdp_TourPackage on ts.FK_TourID equals tp.TourID
join tbs in entities.tdp_TourBusSeats on ts.FK_TBSID equals tbs.TBSID
join tb in entities.tdp_TourBusMaster on tbs.FK_TBID equals tb.TBID
where ts.FK_TDID == TDID && ts.FK_TourID == TourID && ts.IsOpen == 1
group tb by tb.BusNo into cnt
select new
{
BusNo = cnt.Key,
Count = cnt.Count()
}).ToList();
你能试试cnt.Count(x=>x.SomeId>0)吗?@J.Steen很好地解释了SQL和LINQ:)@J.Steen,我的错,我想我太累了。对不起。@gdoron不需要道歉。我只是不同意