如何在 c# 中将特定条件的项目添加到 sql 后对某些元素进行分组

How to group certain element then after add item of specific criteria doing linq to sql in c#

这似乎是一个愚蠢的问题,但我确实需要帮助。我不经常 post 提问,但这次我真的帮了大忙。

我需要一个 linq to sql 查询来对多列进行分组。但不仅如此,其中一列还需要根据 certain condition.

进行分组

我的查询是这个。

using (var donnée = new ClassDonnéeDataContext(mycontrng))
        {
            var don = from d in donnée.Reservations
                      where (d.Date_Livraison.Value.Date == startDate.Value.Date) && d.Sortie_Cuisine != "Oui" && d.Livraison != "Annulée" && (d.Reserv_Boutique == "Non" || d.Reserv_Boutique == null)
                      group d by new
                      {
                          Gateau = d.Gateau,
                          Heure = d.Heure_Livraison,
                          Nb_Part = d.Part,
                      } into grs
                      select new
                      {
                          Gateau = grs.Key.Gateau,
                          Heure = grs.Key.Heure,
                          Nombre = grs.Sum(x => x.Nombre),
                          Nb_Part = grs.Key.Nb_Part,
                      };

            var order = from ord in don
                        orderby ord.Heure ascending
                        select ord;

            dgv.DataSource = order;
        } 

我正在寻找的结果是按特定条件对列 "Heure_Livraison" 进行分组。

查询结果如下

Gateau:                               Heure:                 Nombre:                  Nb_Part:

Foret Noire                           10                     2                        6
Ganache                               10                     2                        6
Foret Noire                           11                     2                        6
Ganache                               11                     2                        6
Ganache                               12                     1                        6

现在我想添加所有同名的蛋糕,相同Nb_Part Between 10-12. 所以结果会像

Gateau:                               Heure:                 Nombre:                  Nb_Part:

Foret Noire                           10                     4                        6
Ganache                               10                     5                        6

如果有人对这个问题有建议,请给我!!!``

我终于通过创建一个单独的列并指定要存储在该列中的数据来解决问题,这样在查询之后我只需要选择该列。

谢谢评论!