NHibernate를 사용하여 필요한만큼 엔티티의 특정 콜렉션을 정확히 정렬하도록 어플리케이션을 구성 할 수 있어야합니다.NHibernate - 진정한 동적 정렬
구성 가능한 종류 :
- 는
- 지정 속성으로 정렬 할 수 있습니다 정렬 특성에 ASC/DESC를 지정할 수 있습니다 순서
- 에서 분류 속성을 지정할 수 있습니다 (여러 속성을 포함 할 수 즉, 해당 SQL/C# 속성이 없습니다 - 계산 됨)
이 기능 는 관리자가 SQL의 일부를 지정하고 SQL 문을 동적으로 작성/실행하는 기존 응용 프로그램에서 상속받습니다.
나는 등 유지 보수, 성능, 확장 성, 보안에 대한 내 머리에 떨어져가는 경보 모든 종류의 진흙 바다에서 받기 시작 솔루션을 통해 생각을하려고 할 때마다 .. 예를 들어
, 내가 그림 관리자는과 같이 쉼표로 구분 된 문자열을 지정할 수 있습니다
"날짜 오름차순, 이름 오름차순, 성 DESC"
내가 문자열을 분할하고 case 문에서 속성/정렬 짝 일치하는 루프를 통해 갈 수 및 호출 .AddOrder (Order.Asc ("FirstName")). 그런데 어떻게 사용자 정의 속성을 처리합니까? 사용자가 사용자 지정 속성을 계산하기 위해 SQL을 지정하도록 허용 한 다음 사용자가 FirstName처럼 정렬 할 수 있도록 허용 할 수 있지만 다시 겉으로보기에는 더러운/kludge를 다시 사용합니다.
이 요구 사항을 처리하기위한 깨끗하고 적절한 방법이 있습니까?
실제로 사용자를 SQL로 입력하는 것입니다. 하지만 (예 : 사용자 정의 속성의 경우) 구문 분석을 수행하고 CustomOrder 클래스에서 SQL을 검증 및 빌드 할 수 있습니다. 내 의견으로는, 그것은 꽤 좋은 시작이다. –