Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.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# SQL到LINQ转换错误:无法将不同的Agregate计数转换为LINQ_C#_Sql_Entity Framework_Linq - Fatal编程技术网

C# SQL到LINQ转换错误:无法将不同的Agregate计数转换为LINQ

C# SQL到LINQ转换错误:无法将不同的Agregate计数转换为LINQ,c#,sql,entity-framework,linq,C#,Sql,Entity Framework,Linq,我有一个SQL查询,我正在尝试将其转换为LINQ。但当我这样做时,我得到了这个错误: SQL无法转换为LINQ:DISTINCT无法将Agregate计数转换为LINQ 那么,如何将count(distinct LOC\u code)转换为LINQ?有什么办法吗 这是我的LINQ查询,不添加计数(不同的LOC\U代码): 我认为totloc=g.Select(p=>p.LOC_code).Distinct().Count()将起作用。但是我怀疑它是否会被翻译回同一个SQL。是的,刚刚意识到,修复

我有一个SQL查询,我正在尝试将其转换为LINQ。但当我这样做时,我得到了这个错误:

SQL无法转换为LINQ:DISTINCT无法将Agregate计数转换为LINQ

那么,如何将
count(distinct LOC\u code)
转换为LINQ?有什么办法吗

这是我的LINQ查询,不添加
计数(不同的LOC\U代码)


我认为
totloc=g.Select(p=>p.LOC_code).Distinct().Count()将起作用。但是我怀疑它是否会被翻译回同一个SQL。是的,刚刚意识到,修复了它。WHERE子句有什么原因吗?它在SQL和LINQ中似乎没有任何作用。@AndyNichols如果我不得不猜测SQL是由动态添加子句的内容生成的,而
1=1
只是没有添加子句时的默认子句。顺便问一下,到底是什么给了你这个错误?我假设它是某种类型的SQL到Linq转换器将起作用。但是我怀疑它是否会被翻译回同一个SQL。是的,刚刚意识到,修复了它。WHERE子句有什么原因吗?它在SQL和LINQ中似乎没有任何作用。@AndyNichols如果我不得不猜测SQL是由动态添加子句的内容生成的,而
1=1
只是没有添加子句时的默认子句。顺便问一下,到底是什么给了你这个错误?我假设它是某种类型的SQL到Linq转换器。
SELECT 
ST_CN_NO,
DN_DT,
count(ST_CN_NO) as totlines,
count(distinct LOC_CODE) as totloc,
sum(SN_QTY)as totscnqty,
sum(SAP_QTY) as totmpqty
from physical_count 
where 1=1  
group by ST_CN_NO,DN_DT  
order by physical_count.ST_CN_NO 
from t in db.PHYSICAL_COUNT
where
  1 == 1
group t by new {
  t.ST_CN_NO,
  t.DN_DT
} into g
orderby
  g.Key.ST_CN_NO
select new {
  ST_CN_NO = (Int32?)g.Key.ST_CN_NO,
  g.Key.DN_DT,
  totlines = (Int64?)g.Count(),
  totscnqty = (Int32?)g.Sum(p => p.SN_QTY),
  totmpqty = (Int32?)g.Sum(p => p.SAP_QTY)
}