在HTTP GET中与LINQ分组的问题返回实体

问题描述 投票:0回答:1

下面的这种方法我在做什么错?我用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# linq grouping http-get
1个回答
0
投票

如果尝试调试,则结果为块。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.