【问题标题】:Equivalent C# LINQ code for SQLSQL 的等效 C# LINQ 代码
【发布时间】:2017-09-24 08:04:30
【问题描述】:

c.我是 LINQ 的新手,并且有以下 SQL 代码,我想要一个等效的 C# LINQ

SELECT
    COUNT(c.sId)
    ,a.Activity
FROM FillStat c
INNER JOIN Activity a
    ON a.Id = c.ActivityID
WHERE c.pId= 300
GROUP BY a.Activity

【问题讨论】:

  • pId 也属于哪个表?
  • @juharr 属于 FillStat
  • var results = from c in db.FillStat from a in c.Activities where c.pId = 300 group c.sId by a.Activity into grp select new { Activity = grp.Key, Count = grp.Count()}
  • 最大的不同是 select 是 Linq 中的最后一件事而不是第一件事,这对我来说更有意义。我建议查找列表推导和 map/reduce 的一般概念,特别是如果你想将你学到的知识应用到其他语言中。

标签: c# sql linq join group-by


【解决方案1】:

使用查询语法,它将如下所示:

var result = from c in db.FillStat
             join a in db.Activity on c.ActivityID equals a.Id
             where c.pId = 300
             group 1 by a.Activity into g
             select new {
                 Activity = g.Key,
                 Count = g.Count()
             };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    • 2011-01-08
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    相关资源
    最近更新 更多