如何在日期时间的仅日期部分使用GROUP BY将SQL查询转换为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
                    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的Date部分分组LinqIGrouping将包含按每个分组分组的所有值Key,因此不需要匿名分组类。

Convert() 从Linq到Sql的转换将很困难,因此在应用谓词并在Linq到Objects的转换之后,我已经将数据具体化到了内存中。

恐怕我使用了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) 
     });

另外,如果可能的话,我会建议保持Date在一个DateTime优先于结构string-这将意味着改变data的财产ListaGrafico,从stringDateTime,然后你可以省略.ToString("dd/MM/yyyy")在最后的Select投影。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用sum和group by将sql查询转换为linq

来自分类Dev

将SUM / CASE WHEN / GROUP BY SQL查询转换为LINQ

来自分类Dev

将包含GROUP BY的SQL Server查询转换为NHibernate LINQ

来自分类Dev

如何将SQL查询转换为LinQ

来自分类Dev

如何将sql限制查询转换为linq lambda?

来自分类Dev

如何将 SQL 多表查询转换为 Linq

来自分类Dev

使用LINQ TO SQL将查询转换为对象

来自分类Dev

如何将sql内部联接查询转换为linq转换为sql查询并转换为列表

来自分类Dev

LINQ查询将字符串转换为日期时间

来自分类Dev

我如何在LINQ查询中仅使用日期时间的日期进行分组

来自分类Dev

如何从sql查询转换为linq

来自分类Dev

使用group by将SQL转换为LINQ

来自分类Dev

使用 sum 和 group by 条件将 SQL 查询转换为 linq/lambda 表达式

来自分类Dev

如何将SQL转换为Linq

来自分类Dev

使用联接将linq查询转换为lambda查询

来自分类Dev

使用MAX将SQL转换为LINQ

来自分类Dev

如何通过预读将SQL转换为LINQ(线索之类的查询)

来自分类Dev

如何将Sql内部查询转换为Linq以获得列的总和

来自分类Dev

如何将 sql 查询转换为 linq LEFT OUTER JOIN

来自分类Dev

我正在尝试使用“ Not IN”将SQL查询转换为Linq到实体

来自分类Dev

如何在SQL中将varchar日期转换为日期时间

来自分类Dev

LINQ 使用 DTO 将 SQL 服务器日期时间转换为字符串

来自分类Dev

将varchar的不同部分转换为日期时间,SQL

来自分类Dev

仅使用日期部分将datetime转换为varchar

来自分类Dev

将数据转换为时间序列的 Linq 查询

来自分类Dev

如何在Entity Framework Core中使用Join()方法将Sql查询转换为Linq及其等效项

来自分类Dev

仅将时间戳转换为日期

来自分类Dev

是否有SQL查询将日期转换为年龄

来自分类Dev

使用group by时如何在Linq中两个日期时间之间的减法时间总和?

Related 相关文章

  1. 1

    使用sum和group by将sql查询转换为linq

  2. 2

    将SUM / CASE WHEN / GROUP BY SQL查询转换为LINQ

  3. 3

    将包含GROUP BY的SQL Server查询转换为NHibernate LINQ

  4. 4

    如何将SQL查询转换为LinQ

  5. 5

    如何将sql限制查询转换为linq lambda?

  6. 6

    如何将 SQL 多表查询转换为 Linq

  7. 7

    使用LINQ TO SQL将查询转换为对象

  8. 8

    如何将sql内部联接查询转换为linq转换为sql查询并转换为列表

  9. 9

    LINQ查询将字符串转换为日期时间

  10. 10

    我如何在LINQ查询中仅使用日期时间的日期进行分组

  11. 11

    如何从sql查询转换为linq

  12. 12

    使用group by将SQL转换为LINQ

  13. 13

    使用 sum 和 group by 条件将 SQL 查询转换为 linq/lambda 表达式

  14. 14

    如何将SQL转换为Linq

  15. 15

    使用联接将linq查询转换为lambda查询

  16. 16

    使用MAX将SQL转换为LINQ

  17. 17

    如何通过预读将SQL转换为LINQ(线索之类的查询)

  18. 18

    如何将Sql内部查询转换为Linq以获得列的总和

  19. 19

    如何将 sql 查询转换为 linq LEFT OUTER JOIN

  20. 20

    我正在尝试使用“ Not IN”将SQL查询转换为Linq到实体

  21. 21

    如何在SQL中将varchar日期转换为日期时间

  22. 22

    LINQ 使用 DTO 将 SQL 服务器日期时间转换为字符串

  23. 23

    将varchar的不同部分转换为日期时间,SQL

  24. 24

    仅使用日期部分将datetime转换为varchar

  25. 25

    将数据转换为时间序列的 Linq 查询

  26. 26

    如何在Entity Framework Core中使用Join()方法将Sql查询转换为Linq及其等效项

  27. 27

    仅将时间戳转换为日期

  28. 28

    是否有SQL查询将日期转换为年龄

  29. 29

    使用group by时如何在Linq中两个日期时间之间的减法时间总和?

热门标签

归档