Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
如何将SQL查询转换为仅在日期时间的日期部分使用GROUP BY的Linq?_Sql_Sql Server_Linq - Fatal编程技术网

如何将SQL查询转换为仅在日期时间的日期部分使用GROUP BY的Linq?

如何将SQL查询转换为仅在日期时间的日期部分使用GROUP BY的Linq?,sql,sql-server,linq,Sql,Sql Server,Linq,请帮助我将此SQL查询转换为Linq SELECT convert(varchar, data_acquisto, 101) as data , SUM(quantita) FROM Acquisto WHERE data_acquisto >= DATEADD(month,-1,GETDATE()) GROUP BY convert(varchar, data_acquisto, 101) 这就是我尝试过的: var a = from acq in ctx.Acquisto

请帮助我将此SQL查询转换为Linq

SELECT convert(varchar, data_acquisto,  101) as data , SUM(quantita)
FROM Acquisto 
WHERE data_acquisto >= DATEADD(month,-1,GETDATE())
GROUP BY convert(varchar, data_acquisto, 101)
这就是我尝试过的:

 var a = from acq in ctx.Acquisto
                    where acq.data_acquisto >= data
                    group acq.data_acquisto.ToString("dd/MM/yyyy") 
                    by new { acq.data_acquisto, acq.quantita } into x
                    select new ListaGrafico() 
                    { 
                      data = x.Key.data_acquisto.ToString("dd/MM/yyyy"), 
                      qta = Convert.ToInt32(x.Key.quantita) 
                    };
这是我得到的错误:

LINQ to Entities无法识别方法“System.String ToString(System.String)”


分组看起来不正确-Sql仅按
DateTime
列的日期部分进行分组。Linq
i分组
将包含按每个分组键分组的所有值,因此不需要匿名分组类

Convert()

恐怕我使用了Lambda语法:

var result = ctx.Acquisto
    .Where(acq => acq.data_acquisto >= DateTime.Now.AddMonths(-1))
    .ToList()
    .GroupBy(acq => acq.data_acquisto.Date)
    .Select(x => new ListaGrafico 
     { 
         data = x.Key.Date.ToString("dd/MM/yyyy"), 
         qta = x.Sum(acq => acq.quantita) 
     });

另外,如果可能的话,我建议在
DateTime
结构中保留
Date
而不是
string
——这意味着将
ListaGrafico
data
属性从
string
更改为
DateTime
,然后可以省略
.ToString(“dd/MM/yyyyy”)
在最后的
中选择
投影。

var a=from acq in ctx.Acquisto其中acq.data\u Acquisto>=DateTime.Now.AddMonths(-1)通过新的{acq.data\u Acquisto.ToString(“dd/MM/yyyy”)将acq分组,acq.quantita}放入x选择新的列表agrafico{data=x.Key,qta=x.Key..quantita}进入x