문제

나는 sql 쿼리를 다시 가져올 수있는 많은 수의 행을 통해습니다지금 나는 쿼리를 DB 변환 결과를 설정으로 목록(의)및 데이터 바인딩하는 표 목록입니다.

이 때에 시간 제한으로 인해 크기의합니다.

내가 현재 세 teir 설정에 의해 UI 이에 작용하는 개체의 목록에서 비즈니스층이다.

할 수 있는 사람을 제안 최고의 접근 구현을 지연 로드에서 이 scenatrio?또는 다른 방법으로 구현하는 이 깨끗하게?

나는 현재 사용하는 Visual Studio2005.NET2.0

편집:어떻게는 페이징에 사용될 이습니까?

도움이 되었습니까?

해결책

LINQ에서 SQL은 귀하의 상황에서 의미가있는 것 같습니다.

그렇지 않으면 어떤 이유로 든 linq to sql을 사용하고 싶지 않다면 (예 : .net 2.0에 있습니다) DataReader 적절한 개체로 변환합니다.

IEnumerator<MyObject> ReadDataReader() {
  while(reader.MoveNext())
    yield return FetchObject(reader);
}

다른 팁

모든 데이터를 한 번에 가져와야합니까? 페이징을 고려할 수 있습니다.

페이 될 수 있습니다 최고의 솔루션입니다.사용하는 경우에는 SQL Server2005 년이나 더 있었는 새로운 기능이 추가되었습니다. 를 시작():

WITH MyThings AS
(
    SELECT ThingID, DateEntered,
    ROW_NUMBER() OVER (ORDER BY DateEntered) AS 'RowNumber'
    FROM dbo.Things 
) 
SELECT * 
FROM ThingDetails
WHERE RowNumber BETWEEN 50 AND 60;

데이비드 헤이든 어떤 도움을 보여주는 SQL.

이 방법을 줄이는 레코드 수를 반환을 줄이고,전반적인 부하다.는 뜻 당신이해야 할 것입니다 좀 더 추적 당신의 순서에 기록이지만,그것은 노력이 가치가 있습니다.
표준 페이징 기술을 필요한 모든 것을 돌아와에서 데이터베이스 및 그런 다음 필터링에서 중간 계층,또는 클라이언트에게 계층(코드김)이 방법을 줄일 기록 더 다루기 쉬운 부분 집합.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top