오류 CS1929 'IEnumerable'에 'OrderBy'에 대한 정의가 포함되어 있지 않으며 최상의 확장 메서드 오버로드 'DynamicQueryableExtensions.OrderBy (IQueryable, string, params object [])'에는 'IQueryable'유형의 수신기가 필요합니다.
다음 쿼리에 대해이 오류가 발생합니다.
var designationDtos = queryResult.Select(x =>
{
var designationDto = ObjectMapper.Map<Designation, DesignationDto>(x.designation);
designationDto.DepartmentName = x.department.Name;
return designationDto;
}).OrderBy(input.Sorting).ToList();
문제는 OrderBy에 있습니다. orderby를 제거하면 모든 것이 잘 작동합니다. 그리고 input.Sorting은 문자열입니다.
IEnumerable
에는 이러한 매개 변수 OrderBy
가 없지만 IQueryable
이러한 매개 변수를 허용하는 사용자 지정 확장 이 있기 때문 입니다.
var designationDtos = queryResult.Select(x =>
{
var designationDto = ObjectMapper.Map<Designation, DesignationDto>(x.designation);
designationDto.DepartmentName = x.department.Name;
return designationDto;
})
.AsQueryable()
.OrderBy(input.Sorting)
.ToList();
또한이 쿼리에서 Automapper를 사용하지 않거나 매핑 구성을 완료하면 쿼리가 더 효과적 일 수 있습니다.
query.ProjectTo<DesignationDto>(configuration)
.OrderBy(input.Sorting)
.ToList();
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다