MP 버그 하나

Midnight Peach 2008. 12. 8. 15:47

[주의]
이 글은 MP의 현재 버전 (3.X)에 맞지 않습니다.

단순 참고용으로만 활용하십시오

EntityManager<T> 클래스의 T GetFirst<U>(Expression<Func<T, bool>> where, Expression<Func<T, U>> orderBy, bool ascending) 메서드에서 버그를 발견하였습니다.

정렬 식을 null 이고 내림차순으로 첫번째 요소를 가져오면(GetFirst(null, null, false)와 같이  ) 오동작을 합니다.

query = query.OrderByDescending(orderBy) 문장이 실행되어야 하지만, if (orderBy != null) 조건에 의해  query = query.OrderBy(orderBy) 문장이 실행되기 때문입니다.

아래는 수정된 코드 입니다.

중간에 query.Count()로 쿼리식이 실행되는 부분이 마음에 들지는 않지만, 현재로서는 이게 최선의 방법인 것 같습니다. 좀 더 고민을 해봐야겠습니다.

수정된 버전은 클릭원스에 반영되어 있으므로 MP를 실행하면 자동으로 새 버전을 다운받게 됩니다.

: