Automapper + Lazy Loading + MVC Contrib + S # ARP 저장소
-
16-09-2020 - |
문제
멋진 S # ARP 저장소와 페이징 확장 방법과 같은 정렬을 사용하고 있습니다.
public ViewResult Index(int? page, GridSortOptions sort)
{
ViewData["sort"] = sort;
if (!string.IsNullOrEmpty(sort.Column))
{
return View(this.LabService.GetAllLabs().OrderBy(sort.Column, sort.Direction).AsPagination(page ?? 1, 10));
}
.
...
내 첫 번째 질문은 다음과 같습니다 :
(1)은 페이징 전에 정렬이 수행되어야하며,이 모든 것이 게으른 로딩을 사용하는 것임을 사용하는 것입니다 (즉, 실제 SQL에서 상위 N 또는 무언가를 내부적으로 사용합니다)?
현재의 MVC Contrib Grid 구현의 짧은 단점 중 하나는 다음과 같이 사용자 정의 된 열 (예 : 결합 된 열 값)에 대한 정렬을 허용하지 않는다는 것입니다.
String.Format("{0} {1}", lab.Proposer.LastName, lab.Proposer.FirstName)
.
(보기에서 사용)
나는 상당히 간단한 S # ARP 솔루션에서보기 모델을 보지 않으려고했지만,이 경우 사용자 정의 컬럼의 정렬을 허용하는이 경우에 볼 수있는 모델로 할 수 있습니다.
Automapper를 사용하여 과거의 모델을 뷰와 그 반대로 맵핑하기 위해 Automapper를 사용했습니다. 그러나이 솔루션에 한 가지 문제가 있습니다. 게으른 로딩을 사용하여 여전히 작동합니까?
다른 단어에서 Automapper는 정렬 및 페이징이 생성 된 성능을 초래하기 전에 먼저 모든 도메인 개체를보기 객체에 매핑 할 필요가 없습니다.
나는 이것이 의미가 있기를 바랍니다. 그리고 당신은 내가 무엇을 얻는지 이해합니다. 고마워.
최고의 소원,
기독교
해결책
-
yes 정렬 및 쿼리 (무언가= bla bla)가 페이징 전에 수행해야합니다. 실제로 SQL을 작성하는 경우에만이 작업을 신경 써야합니다. 그렇지 않으면 Hibernate 또는 linq2sql 또는 비슷한 무언가와 비슷한 경우에만주의해야합니다.'T
-
모든 automapper는 하나의 객체에서 값을 가져 와서 다른 객체 (일부 데이터 변환이 포함되어 있으며, 구성 및 모든 것)가있는 경우, 사용자 정의 valueResolver에서 어떤 물건을 작성하는지 않는 한기본적 으로이 Valueresolver를 사용하여 일부 특정 속성
를 사용할 수있는 후에 작성하십시오.
환호