C# 将此联接sql查询转换为linq
如何将此sql查询转换为linqC# 将此联接sql查询转换为linq,c#,asp.net,linq,C#,Asp.net,Linq,如何将此sql查询转换为linq select sum(a.Count),b.PeriodDesc from dbo.tbl_Sample a,dbo.tbl_Period b where a.PeriodID=b.PeriodID group by PeriodDesc tbl_时段-时段ID,时段描述 tbl_样本-ID、Count、PeriodID假设YourContext是在上下文中生成的,并且您在tbl_样本和tbl_样本之间具有导航属性,那么查询将如下所示: usin
select sum(a.Count),b.PeriodDesc from dbo.tbl_Sample a,dbo.tbl_Period b
where a.PeriodID=b.PeriodID group by PeriodDesc
tbl_时段-时段ID,时段描述tbl_样本-ID、Count、PeriodID假设
YourContext
是在上下文中生成的,并且您在tbl_样本
和tbl_样本
之间具有导航属性,那么查询将如下所示:
using(var db = new YourContext())
{
var result = db.tbl_Sample.GroupBy(p=>p.tbl_Period.PeriodDesc)
.Select(p => new {p.Key, p.Count()})
//whateve you want to do ...
}
请检查一下
var result = (from a in tbl_Sample
group a by a.PeriodDesc into abc
join b in tbl_Period on abc.FirstOrDefault().PeriodID equals b.PeriodID
select new ModelName {
SumofCount = abc.sum(m => m.Count),
PeriodDesc = b.PeriodDesc
}).tolist();
试试这个
var joinedTables = from p in listPeriod
join s in listSample on p.PeriodID equals s.PeriodID
select new { p.PeriodDesc, s.Count };
var result = from p in joinedTables
group p by p.PeriodDesc into g
select new { PeriodDesc = g.Key, Sum = g.Sum(p=>p.Count)};
Ofc您必须使用正确的集合(或表格实体)更改listPeriod
和listSample
,Joseph Albahari和Ben Albahari是好朋友