【问题标题】:Select Min() on GroupBy in EF 6 Net Core 5在 EF 6 Net Core 5 中的 GroupBy 上选择 Min()
【发布时间】:2021-11-16 00:02:22
【问题描述】:

在按“RateClass”分组的表中,我尝试选择“RateClass”、Min(“CostDay”) 和“CostWeek”,但我的代码崩溃了。

var data = db.Rates.GroupBy(t => t.RateClass)
             .Select( g => new {  
                                rateClass = g.Select(x => x.RateClass), 
                                costtDay = g.Min(x => x.CostDay), 
                                costWeek = g.Select(x => .CostWeek)
                               })
              .ToList();

【问题讨论】:

  • 你在这里少了一个 x costWeek = g.Select(x => .CostWeek),应该是 costWeek = g.Select(x => x.CostWeek)

标签: sql .net-core entity-framework-6


【解决方案1】:

正如我在评论中所说,它不会编译,因为你在这里缺少一个 x costWeek = g.Select(x => .CostWeek),应该是 costWeek = g.Select(x => x.CostWeek)

另外,您是否尝试为每个组创建一个条目?如果是这样,你可以试试这个......

 public class Rates
    {
        public string RateClass { get; set; }
        public decimal CostDay { get; set; }
        public decimal CostWeek { get; set; }
    }


 var rates = new List<Rates>
            {
                new Rates {CostDay = 2, CostWeek = 7, RateClass = "Test 1"},
                new Rates {CostDay = 4, CostWeek = 17, RateClass = "Test 1"},
                new Rates {CostDay = 6, CostWeek = 27, RateClass = "Test 2"},
                new Rates {CostDay = 8, CostWeek = 37, RateClass = "Test 2"}
            };

            var data = rates.GroupBy(t => t.RateClass)
                .Select(g => new Rates {
                    RateClass = g.Key,
                    CostDay = g.Min(x => x.CostDay),
                    CostWeek = g.Sum(x => x.CostWeek)
                })
                .ToList();

RateClass 将是您分组的关键,我只是以 CostWeek 为例。这是一个link 来尝试一下。

【讨论】:

    猜你喜欢
    • 2021-11-17
    • 2021-09-05
    • 1970-01-01
    • 2020-09-04
    • 2021-01-09
    • 1970-01-01
    • 2022-01-25
    • 2022-01-15
    • 1970-01-01
    相关资源
    最近更新 更多