nested Linq Query Возвращает ошибку во время выполнения (невозможно создать постоянное значение типа Anonymous) - PullRequest
2 голосов
/ 14 мая 2019

здесь вы можете найти все исключение https://pastebin.com/gfHdTUKd

                var rangeReports = dbCon.RangeReports.Where(x => x.PatientRegistrationId == pidReg)
                    .Select(x => new { x.TestID, x.Value, x.TestDate })
                    .OrderBy(x => x.TestDate).Distinct().ToList();


                var ReportsData = dbCon.Tests
                        .Select(t => new 
                        {
                            ID = t.ID,
                            Name = t.Name,
                            reports = rangeReports.Where(rr => rr.TestID == t.ID)
                             .Select(rr => new { TestDate = rr.TestDate, Value = rr.Value }).ToList()
                        }).ToList();

Если я удаляю строку кода из строки ниже запроса, он работает нормально, не может найти точную проблему.

reports = rangeReports.Where(rr => rr.TestID == t.ID)
                                 .Select(rr => new { TestDate = rr.TestDate, Value = rr.Value }).ToList()

Ваша помощь будет высоко оценена

Спасибо

1 Ответ

1 голос
/ 14 мая 2019

Если материализовать второй запрос первым, это должно решить проблему:

            var ReportsData = dbCon.Tests
                    .Select(t => new 
                    {
                        ID = t.ID,
                        Name = t.Name
                    })
                    .ToList() //Materialize the query first
                    .Select(t => new 
                    {
                        ID = t.ID,
                        Name = t.Name,
                        reports = rangeReports.Where(rr => rr.TestID == t.ID)
                         .Select(rr => new { TestDate = rr.TestDate, Value = rr.Value }).ToList()
                    }).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...