【问题标题】:Need linq help: Trying to add detail to master需要 linq 帮助:尝试向 master 添加详细信息
【发布时间】:2021-04-08 01:52:49
【问题描述】:

我没有做太多处理标题和详细记录的工作。我需要创建一个订单对象 并将 IList 我要做的就是在标头有效负载中填充我的“IList”。我不断收到“查询正文必须以选择结尾”并且不知道如何完成。我确定有更好的方法 使用连接,但如果我能让它工作,我会很激动。


var orderHeaderRecords = ctx.sparGetOrderConfirmationRecords_WED(runDate).ToList();
var orderDetailRecords = ctx.sparGetOrderConfirmationRecordsDetail_WED(runDate).ToList();

var order = (from o in orderHeaderRecords
//gave up on join
//join od in orderDetailRecords on new { o.RecordType, o.OrderNumber } equals new { od.RecordType, //od.OrderNumber }
  
 select new OrderConfirmation()
 {
    BillAddr1 = o.BillToAddr1,
    BillAddr2 = o.BillToAddr2,
    IsOfficeOrder = Convert.ToBoolean(o.IsOfficeOrder),
    OrderConfirmationType = EnumHelper.GetValueFromDescription<ConfirmationType>(o.RecordType),
    LineItems = new List<LineItem>()
 }).ToList();
 
order.ForEach(or =>
                    
                    {   or.LineItems.AddRange((from line in orderDetailRecords.Where(x => 
                        x.RecordType == or.OrderConfirmationType.ToDescription() 
                        && x.OrderNumber == or.OrderNumber).Select(od =>

                        new LineItem(
                          {
                             Desc = od.Description,
                             ExtAmt = od.ExtPrice.Value,
                            ItemId = od.Item                                                  } 
                          ).Select(rec => rec).ToList()); //.ToList()));

                    });
```
The last line of code (body must end with a select or group by)  
I just need to get the detail records in the "List" on the master record.  

【问题讨论】:

    标签: linq c#-3.0


    【解决方案1】:
    order.ForEach(or =>                    
    {   or.LineItems.AddRange(
        orderDetailRecords
        .Where(x => x.RecordType == or.OrderConfirmationType.ToDescription() && x.OrderNumber == or.OrderNumber)
        .Select(od =>
            new LineItem(
                {
                    Desc = od.Description,
                    ExtAmt = od.ExtPrice.Value,
                    ItemId = od.Item                                                  } 
                )).ToList());
    });
    

    【讨论】:

    • 非常感谢,Jim G。非常感谢。成功了。
    • @Joe Kehnast:很高兴知道。如果对您有帮助,您可以投票支持我的答案并将其标记为已接受的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 2017-10-08
    • 2019-02-13
    • 2017-06-11
    • 2022-11-17
    • 1970-01-01
    相关资源
    最近更新 更多