Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ中的条件和_C#_Linq - Fatal编程技术网

C# LINQ中的条件和

C# LINQ中的条件和,c#,linq,C#,Linq,此sql查询中的linq查询是什么 SELECT sum(IIF(jenis = 'primer',1,0)) as sum_primer, sum(IIF(jenis = 'sekunder',1,0)) as sum_sekunder FROM cooperations 尝试从101个Linq样本中搜索相同的示例,但没有得到任何线索 更新 因此,我在C语言中使用了这个查询# 输出是 sum_primer sum_sekunder 0

此sql查询中的linq查询是什么

SELECT 
      sum(IIF(jenis = 'primer',1,0)) as sum_primer, 
      sum(IIF(jenis = 'sekunder',1,0)) as sum_sekunder
FROM cooperations
尝试从101个Linq样本中搜索相同的示例,但没有得到任何线索

更新 因此,我在C语言中使用了这个查询#

输出是

 sum_primer   sum_sekunder
    0             0 
    0             52
   250            0
    0             0
    0             0
那么,我如何去掉零值,只返回一行呢

var sum_primer = cooperations.Count(c => c.jenis == "primer");
var sum_secunder = cooperations.Count(c => c.jenis == "sekunder");
或者在对数据库的单个查询中

var query = (from c in cooperations
             where c.jenis == "primer" || c.jenis == "sekunder"
             group c by c.jenis
             select new { Jenis = g.Key, Count = g.Count() }
            ).ToDictionary(x => x.Jenis, x => x.Count);

var result = new {
   sum_primer = query.ContainsKey("primer") ? query["primer"] : 0,
   sum_sekunder = query.ContainsKey("sekunder") ? query["sekunder"] : 0
};
将生成此SQL(只返回两行):


您可以像这样实现它,下面是根据条件为您提供项目计数

var data = db.CoOperations.
           GroupBy(x=>x.jenis )
           .select (new {
                sum_primer = g.Count(c => c.jenis == "primer"),
                sum_sekunder = g.Count(c => c.jenis == "sekunder"),
            });

这是一个简单的分组,它将为每个
jenis
值返回
sum\u primer
sum\u sekunder
。您的查询返回正确的值,但因为我有10个条件,这是否意味着我必须执行10个查询?谢谢:D@l1th1um如果您指的是jenis的10个条件,那么实际执行的查询将只有一个(请参阅更新)
SELECT COUNT(*) AS [Count], [t0].[jenis] AS [Jenis]
FROM [cooperations] AS [t0]
WHERE ([t0].[jenis] = 'sekunder') OR ([t0].[jenis] = 'primer')
GROUP BY [t0].[jenis]
var data = db.CoOperations.
           GroupBy(x=>x.jenis )
           .select (new {
                sum_primer = g.Count(c => c.jenis == "primer"),
                sum_sekunder = g.Count(c => c.jenis == "sekunder"),
            });