gpt4 book ai didi

c# - 如何在linq to sql中分组?

转载 作者:太空狗 更新时间:2023-10-30 01:11:40 25 4
gpt4 key购买 nike

我有这样的数据

id = 1<pk>
SDate = 12/12/2009
EDate = 12/12/2009
binding = a_1
userid = 14

id = 2<pk>
SDate = 12/12/2009
EDate = 12/12/2009
binding = a_1
userid = 14

我想通过绑定(bind)对我的数据进行分组。我不知道该怎么做。我是否必须重新选择才能执行此操作?

到目前为止我有这个

 Db.Table.Where(u => u.UserId == userId && u.Binding == binding)
.GroupBy(u => u.Binding)

所以我想返回所有的列。我必须去吗

.select(group = new Table {....});

最佳答案

请记住,Linq 的 GroupBy 与 SQL 的 GroupBy 不同。 Linq 的 GroupBy 返回一个 .Key(这是您按条件分组的内容),然后返回一个 IEnumerable<> 表示您正在分组的内容。因此,如果您想要计算每个绑定(bind)的所有行数以及绑定(bind)本身,它将是:

 var bindingsAndCounts = 
Db.Table.Where(u => u.UserId == userId && u.Binding == binding)
.GroupBy(u => u.Binding)
.Select(g => new {g.Key, BindingCount = g.Count()});

这是一种比 SQL 更强大的结构,因为您可以在表达式中使用“g”做任何事情。

如果你想遍历每个组你可以省略选择:

foreach (var group in whateveryourgroupingExpressionWas) {
Console.WriteLine(group.Key);
foreach (var row in group) {
Console.WriteLine("ID: " + row.Id + "Name " + row.Name ...);
}
}

关于c# - 如何在linq to sql中分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1987417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com