我遇到查询问题
我需要从SHIPMENT
取出GetAllOrderData
- 您可以找到POD_DATE
和RECEIVE_NAME
的同一个地方......但我收到错误
错误1当前上下文中不存在名称“x”
我的代码是:
public IEnumerable<ReportItemDTO> GetTaskProgress(DateTime targetDate)
{
try
{
var startDate = targetDate.Date;
var endDate = startDate.AddDays(1);
OrderDataRepository rep = new OrderDataRepository();
var query = rep.GetAllOrderData()
.Where(x => x.POD_DATE >= startDate && x.POD_DATE <= endDate)
.GroupBy(o => o.User)
.Select(g => new ReportItemDTO
{
DriverId = g.Key.Id,
PdriverName = g.Key.Name,
OrderCount = g.Count(),
ReportedOrdersCount = g.Count(o => o.RECEIVE_NAME != null),
SHIPMENT = (x.SHIPMENT)
} );
return query;
答案 0 :(得分:1)
SHIPMENT = (x.SHIPMENT)
当您尝试进行分配时,您处于分组范围内 - 每个分组中的许多货件不仅仅是一个 - 实际上是该特定用户的所有货件。假设你想要一个集合,你可以这样做:
Shipments = g.Select( x=> x.SHIPMENT)
修改强>
如果您只是希望每个用户的第一批货物(有点不合逻辑但适合您的数据模型):
SHIPMENT = g.Select( x=> x.SHIPMENT).First()