Сначала в своем запросе я пытаюсь получить только 500 рыночных записей каждый раз (PageSize = 500). Поэтому в идеале я должен получать подсистемы только для тех 500 рыночных рекордов. Вот почему в запросе «подсистем» я пытаюсь присоединиться к отфильтрованному списку рыночных рекордов. Этот запрос очень медленный. Затем я попытался соединиться напрямую с dbContext.tblfitems в запросе «subsytems1». Этот запрос быстрее, чем первый. Но я присоединяюсь ко всем записям в fitems (marketrecords). В идеале второе должно быть медленным, так как объединение с тысячами записей, но в более раннем случае это только 500 записей. Я просто не хочу объединяться со всеми записями, а просто хочу объединить 500 записей. Как мне поступить?
List<MarketRecord> maketRecords = _dbContext.tblfitems.Where(x => x.MarketId == marketId)
.OrderBy(x => x.RecordId)
.Skip((pageIndex - 1) * PageSize)
.Take(PageSize)
.ToList();
List<FSubsystem> subsytems = (from t1 in _dbContext.tblfsubsystems
join t2 in maketRecords on t1.RecordId equals t2.RecordId
where t2.MarketId == marketId
select t1)
.Distinct().OrderBy(x => x.RecordId).ThenBy(y => y.FSubsystemId).ToList();
List<FSubsystem> subsytems1 = (from t1 in _dbContext.tblfsubsystems
join t2 in _dbContext.tblfitems on t1.RecordId equals t2.RecordId
where t2.MarketId == marketId
select t1)
.Distinct().OrderBy(x => x.RecordId).ThenBy(y => y.FSubsystemId).ToList();