Mam następujący kod:LINQ do podmiotów ignoruje moje oświadczenie orderby
var myCats = _context.Cats.Where(c => c.OwnerId == 1).OrderBy(c => c.Age);
var uniqueCatIds = myCats.Select(c => c.CatId).Distinct();
z jakiegoś powodu, klauzula OrderBy
jest ignorowana, gdy badam SQL wyjściowego za pomocą profilera. Co chcę zrobić, to wybrać wszystkie unikalne identyfikatory kota w tej samej kolejności, w jakiej pojawiają się one w myCats, i zachować charakter zapytania IQueryable.
Jeśli wstawię po zamówieniu .ToList()
, kolejność pojawia się w SQL i działa. Jednak przy tak wielu kotach jest to bardzo powolne.
Jakieś pomysły, dlaczego tak się dzieje?