우리는 데이터베이스에 수천 개의 결과를 반환 할 수있는 몇 가지 검색 기능을 가지고 있습니다. 처음 10 개의 레코드. 다음 페이지가 요청되면 db를 다시 방문합니다. 변수 집합을 기반으로 데이터베이스를 검색하면이 검색을 세분화하여 다른 데이터베이스를 검색 할 수 있습니다. 쿼리는 상당히 복잡합니다.읽기 전용 검색 기능. POCOs와 Ef 4.0을 사용하는 저장 프로 시저 또는 IQueryable
Google은 전반적인 아키텍처에 맞는 다양한 방법을 찾고 있습니다.
첫 번째 방법은 저장된 프로 시저를 사용하여 엔터티 목록을 채우는 것입니다. 이 저장된 proc은 빠르게 크고 방패가 될 수 있지만 더 나은 성능을 보입니다.
두 번째 방법은 Linq를 Entity Framework 4.0과 함께 Entites 또는 Entity SQL에 사용하고 개념적 계층에 걸쳐 코드로 쿼리를 만들고 IQueryable을 통해 POCO 개체를 채 웁니다. 이 중 우리에게 이점이 있습니다
- 추상화 : 가능하면 우리가 추상화 된 모델에 검색을하고 싶은 것이, 그래서 우리는 응용 프로그램에서 다른 장소에서 EF를 사용하고 있습니다.
- 유형 안전 우리가 체인에 IQueryable의 필터를 깨끗하게 우리가 개체에 수행 할 작업을 할 수있는이 방법으로 우리의 주요 관심사는 성능이다 방법
oirentated. 우리는 Parrlel LINQ to Entities를 사용하기를 희망하고 필요할 경우 더 많은 하드웨어를 던질 수 있습니다. 작은 성능의 히트는 더 깨끗한 개발 패턴에 적합합니다.
우리는 사람들의 생각과 권장 사항을 듣는 것에 감사하게 생각합니다. 우리는 이러한 기술을 많이 접했고 사람들의 경험을 듣고 싶습니다.
그래, 우리는 확실히 전체 결과가 아닌 결과 세트를 반환하고 캐싱 레이어를 구현할 것입니다. 결과를 비교하기 위해 성능 테스트를 수행 할 것입니다. 우리는 EF의 발자국을 가능한 작게 만들기 위해 EF에서 POCO를 사용할 것입니다. 비록 이것이 여전히 상당히 클 수 있다고 생각합니다. 물론 느려지지만, 얼마나 많이 볼 수 있습니다! –