C# 使用“count”子句将SQL查询转换为LinQ
下面我的SQL Server查询工作得非常好,我正在尝试将其转换为C中的LinQ SQL查询: 期望输出为: 我能够以下面的格式绘制LinQ查询,这给了我正确的输出 除计数*为“机构编号”外 LINQ查询: 这给了我“机构编号”的计数=3 我无法正确获得计数方面。我参考了post的答案,它只给出了count,但我无法将其嵌套在LinQ查询中。C# 使用“count”子句将SQL查询转换为LinQ,c#,sql-server,linq,C#,Sql Server,Linq,下面我的SQL Server查询工作得非常好,我正在尝试将其转换为C中的LinQ SQL查询: 期望输出为: 我能够以下面的格式绘制LinQ查询,这给了我正确的输出 除计数*为“机构编号”外 LINQ查询: 这给了我“机构编号”的计数=3 我无法正确获得计数方面。我参考了post的答案,它只给出了count,但我无法将其嵌套在LinQ查询中。 任何有帮助的输入都将不胜感激。我认为您可以使用此LinQ: var obj = dbContext.InstitutionEnquiry
任何有帮助的输入都将不胜感激。我认为您可以使用此LinQ:
var obj = dbContext.InstitutionEnquiry
// WHERE CITY = 'AHMEDABAD'
.Where(w => w.City == "AHMEDABAD") // => Note
// GROUP BY addressline3, city
.GroupBy(g => new {g.AddressLine3, g.City})
// SELECT addressline3, city, COUNT(*) as 'InstitutionNumber'
.Select(c => new {c.Key.AddressLine3, c.Key.City, InstitutionNumber = c.Count()})
// ORDER BY city
.OrderBy(o=> o.City)
.ToList();
注意:对于忽略区分大小写,您可以使用:
.Where(string.Equals(w.City.Trim(), data.Trim(), StringComparison.CurrentCultureIgnoreCase))
我想你可以用这个LinQ:
var obj = dbContext.InstitutionEnquiry
// WHERE CITY = 'AHMEDABAD'
.Where(w => w.City == "AHMEDABAD") // => Note
// GROUP BY addressline3, city
.GroupBy(g => new {g.AddressLine3, g.City})
// SELECT addressline3, city, COUNT(*) as 'InstitutionNumber'
.Select(c => new {c.Key.AddressLine3, c.Key.City, InstitutionNumber = c.Count()})
// ORDER BY city
.OrderBy(o=> o.City)
.ToList();
注意:对于忽略区分大小写,您可以使用:
.Where(string.Equals(w.City.Trim(), data.Trim(), StringComparison.CurrentCultureIgnoreCase))
第一个观察结果是,由于SQL有一个GroupBy,LINQ也应该有一个GroupBy 第二个观察结果是,由于SQL中的非聚合列是按列分组的,因此在LINQ中选择的结果将来自组的键 现在我们可以编写查询:
var res = dbContext.InstitutionEnquiry
.Where(u => u.City == data.Trim().ToLower())
.GroupBy(u => new {
AddressLine3 = u.AddressLine3.Trim().ToLower(),
City = u.City.Trim().ToLower()
}).Select(g => new {
g.Key.AddressLine3,
g.Key.City,
Count = g.Count()
}).ToList();
第一个观察结果是,由于SQL有一个GroupBy,LINQ也应该有一个GroupBy 第二个观察结果是,由于SQL中的非聚合列是按列分组的,因此在LINQ中选择的结果将来自组的键 现在我们可以编写查询:
var res = dbContext.InstitutionEnquiry
.Where(u => u.City == data.Trim().ToLower())
.GroupBy(u => new {
AddressLine3 = u.AddressLine3.Trim().ToLower(),
City = u.City.Trim().ToLower()
}).Select(g => new {
g.Key.AddressLine3,
g.Key.City,
Count = g.Count()
}).ToList();
林克:
等效Lambda表达式:
var obj = dbContext.InstitutionEnquiry
.GroupBy(p => new { p.addressline3, p.city})
.Select(p => new { p.Key.addressline3, p.Key.city, InstitutionNumber = p.Count() })
.ToList();
林克:
等效Lambda表达式:
var obj = dbContext.InstitutionEnquiry
.GroupBy(p => new { p.addressline3, p.city})
.Select(p => new { p.Key.addressline3, p.Key.city, InstitutionNumber = p.Count() })
.ToList();
当来自数据库的“u”为大写时,为什么要将“data”转换为小写的u.City==data.Trim.ToLower?当来自数据库的“u”为大写时,为什么要将“data”转换为小写的u.City==data.Trim.ToLower?