c# - Linq 按多列分组 - 问题
问题描述
我似乎遇到了一个可能是非常简单的任务的问题(请原谅我对 linq 和 c# 的新手)。
我想使用 linq 来查询 EF DB 上下文。作为其中的一部分,我想按几列分组,然后将这些结果存储到一个列表对象中。
我目前有这个:
var Orders = orderSqlContext.OrderDetails
.GroupBy(x => new
{
x.OrderNumber,
x.OrderTotal
})
.Select(x => new
{
x.OrderNumber,
x.OrderTotal
}).ToList
我最终在上面的“选择”部分的两列中出现错误。
“OrderDetails 不包含 OrderNumber 的定义,并且找不到接受 IGrouping [...] 类型的第一个参数的扩展方法 OrderNumber。”
基本上,OrderDetails 上下文通常会返回一个订单列表,其中包含每个订单项的额外记录。我还想列出该上下文中的不同订单。
谢谢!
解决方案
您必须使用组的Key
属性:
var Orders = orderSqlContext.OrderDetails
.GroupBy(x => new
{
x.OrderNumber,
x.OrderTotal
})
.Select(grp => new
{
grp.Key.OrderNumber,
grp.Key.OrderTotal
}).ToList();
推荐阅读
- angularjs - 从控制器定义之外向控制器范围添加函数
- php - 使用 &JComponentHelper 时出现严格的标准错误
- vba - 按电子邮件域将电子邮件移动到特定文件夹
- python - pyspark的sparkcontext中PyFiles参数的用途是什么
- python-3.x - 当轴在具有双 y 轴的图中具有对数刻度时,y 轴刻度看起来不太好 10 的幂
- reactjs - 从 Chalice API 获取
- python - 为什么我的 PC 的峰值内存比我的 macbook 笔记本电脑高?
- python - 将numpy数组从object dtype转换为float
- python - 使用 libvirt 获取来宾 KVM 的 Mac 地址
- python - 寻找pythonic的优雅:字典而不是重复的意大利面条块