Улучшение скорости метода после добавления значения из другой таблицы aspn.net - PullRequest
0 голосов
/ 11 октября 2018

У меня есть две таблицы: Index и Codes

, когда выполняется одно условие, мне нужно проверить, действительно ли Index все еще действует, и для этого мне нужно получить EndDate кода, который находится в таблице Codes (поскольку у меня есть только идентификатор кода в таблице Index). Вот как я это делаю:

1) Сначала я получаю все коды, которые закончилисьуже (около 3 тыс. + элементов)

            var goods = _context.Codes.Select(a =>
              new Codes
              {
                  Loid = a.Loid,
                  Pid = a.Pid,
                  Code = a.Code,
                  Startdate = a.Startdate,
                  Enddate = a.Enddate
              })
              .Where(x => x.Enddate < DateTime.Now)
               .ToList();

тогда я беру свой Индекс и добавляю туда значения, а также CodeEnd из Codes списка выше:

query = _context.VpAbcIndex
             .AsNoTracking()
            .Select(e => new VpAbcIndex
            {
                Id = e.Id,
                ParentName = e.ParentName ?? "!",
                ParentEndDate = e.ParentEndDate,
                ParentStartDate = e.ParentStartDate,
                ParentCode = e.ParentCode,
                ParentNote = e.ParentNote ?? "",
                ParentStatus = e.ParentStatus,

                ChildName = e.ChildName ?? "!",
                ChildId = e.ChildId,
                ChildEndDate = e.ChildEndDate,
                ChildStartDate = e.ChildStartDate,

                CodeEnd = (filter.Level == 0) ? goods
               .FirstOrDefault( x => x.Code == e.ParentCode).Enddate :
               (filter.Level == 1) ? goods
               .FirstOrDefault(x => x.Code == e.ChildCode).Enddate :
               (filter.Level == 2) ?
               goods
               .FirstOrDefault(x => x.Code == e.GrandChildCode).Enddate : null
            })
            ;
        }

Это примерно10 тыс. Предметов.Похоже, что они появляются в моем браузере довольно долго.Я делаю что-то неправильно?Есть ли более быстрый способ объединения этих значений?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...