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();