will be error when I using ToListAsync?

mc 4,111 Reputation points
2024-02-04T15:43:06.83+00:00

now I am testing the .net maui android and using sqlite. when I read data in sqlite and click the button quickly. _context.Products.AsNoTracking().OrderByDescending(x => x.Id).Skip(0).Take(pageSize).Where(x => ids.Contains(x.ProductTypeId)).ToListAsync(); it may return Count = 0 but it is wrong and I change it to

await (from p in _context.Products.AsNoTracking()
                              join i in ids
                              on p.ProductTypeId equals i
                              select p).OrderByDescending(x => x.Id).Skip(0).Take(pageSize).ToListAsync();


no matter how fast I click it the result is right. why?

.NET MAUI
.NET MAUI
A Microsoft open-source framework for building native device applications spanning mobile, tablet, and desktop.
3,231 questions
{count} votes

1 answer

Sort by: Most helpful
  1. Bruce (SqlWork.com) 61,731 Reputation points
    2024-02-04T17:41:47.2533333+00:00

    In the non working code, you sort, take the first page size entries, then perform a where on this subset. In the working code, you filter from the whole set, than sort and take.