ASP.NET

The query uses the 'First'/'FirstOrDefault' operator without 'OrderBy' and filter operators.

washble2 2026. 3. 19. 19:11

warn: Microsoft.EntityFrameworkCore.Query[10103]
      The query uses the 'First'/'FirstOrDefault' operator without 'OrderBy' and filter operators. This may lead to unpredictable results.

 

위와 같은 에러가 아래의 코드에서 나왔는데 해결방법은 OrderBy를 넣거나 Single 결과가 나온다고 명시해주는 것 입니다.

FormattableString sql = $"SELECT EXISTS (SELECT 1 FROM dbTable WHERE orderId = {productId}) AS Value";
int exists = await _dbContext.Database.SqlQuery<int>(sql).FirstOrDefaultAsync();

 

 

해결방법

// OrderBy 사용
FormattableString sql = $"SELECT EXISTS (SELECT 1 FROM dbTable WHERE orderId = {productId}) AS Value";
int exists = await _dbContext.Database.SqlQuery<int>(sql).OrderBy(v => v).FirstOrDefaultAsync();

// SingleAsync 사용(결과가 1개라는 명시)
FormattableString sql = $"SELECT EXISTS (SELECT 1 FROM dbTable WHERE orderId = {productId}) AS Value";
int exists = await _dbContext.Database.SqlQuery<int>(sql).SingleAsync();