首页 > 解决方案 > 在 HTTP GET 中返回与 LINQ 分组的实体时出现问题

问题描述

我在下面的这种方法中做错了什么?我用 linq 创建了一个组,因为我需要按 2 列对列表进行分组,对于这个分组,我将有一个文件列表。

[HttpGet]
        [Route("versions-by-period")]
        public IActionResult GetVersionsByPeriodId(int entityId, int periodId)
        {
            var versionsInvoiceBillet = db.RemittanceInvoiceBilletVersionsCompacts
                .Where(x => x.LegalEntityId == entityId && x.PeriodId == periodId && x.IsCurrent && x.DownloadHash != null)
                .GroupBy(x => new { x.LifePolicyNumber, x.LegalEntityGroupNumber }, 
                                    i => new { i.DownloadHash, i.FileTypeEnum, i.DueDate }, (key, group) => new
                {
                    LifePolicyNumber = key.LifePolicyNumber,
                    LegalEntityGroupNumber = key.LegalEntityGroupNumber,
                    Files = group.ToList()
                });

            return Ok(versionsInvoiceBillet.Select(x => new { 
                lifePolicyNumber = x.LifePolicyNumber,
                legalEntityGroupNumber = x.LegalEntityGroupNumber,
                invoiceAndBillet = x.Files.Select(f => new { 
                    downloadHash = f.DownloadHash,
                    fileTypeEnum = f.FileTypeEnum,
                    dueDatet = f.DueDate
                })
            }));
        }

如果我尝试用 Postman 调用此方法,则正文为空。问题出在返回的 invoiceAndBillet 信息中,如果我更改为下面,则正文已填充。

return Ok(versionsInvoiceBillet.Select(x => new { 
                lifePolicyNumber = x.LifePolicyNumber,
                legalEntityGroupNumber = x.LegalEntityGroupNumber,
                invoiceAndBillet = x.Files.Select
            }));

如果我尝试调试我尝试返回的选择,我会在下面收到此消息:

在此处输入图像描述

标签: c#linqgroupinghttp-get

解决方案


推荐阅读