각 레코드에 6 개의 하위 엔티티 목록이있는 약 7500 개의 데이터베이스 레코드를 가져와야하는 시나리오가 있습니다. 각 자식 목록은 0 ~ 약 125 개의 레코드가 될 수 있습니다. 나는 모든 개체를 검색 한 후수십만 개의 하위 레코드가있는 수천 개의 레코드를 클래스 객체로 가져 오는 가장 효과적인 방법은 무엇입니까?
public class Entity
{
public int ID { get; set;
public string Name { get; set; }
public ICollection<ChildEntity1> Children1 { get; set; }
public ICollection<ChildEntity2> Children2 { get; set; }
public ICollection<ChildEntity3> Children3 { get; set; }
public ICollection<ChildEntity4> Children4 { get; set; }
... 2 more collections
}
것은, 내가 궁극적으로 각각의 반복과 약간의 계산을 수행, 일부 웹 서비스 및 기타 여러 가지를 호출해야합니다
는내 계급 구조의 종류 다음과 같습니다 파일로 내 보냅니다.
C# 4를 사용하여 MS SQL Server 2008에서이 데이터를 검색하는 가장 좋은 전략은 무엇입니까? DataAdapters가있는 DataSet이 가장 좋은 방법입니까? ORM?
분명히 N + 1 개의 선택 시나리오에서 벗어나고 싶습니다.
메모리에있는 모든 엔티티가 동시에 필요합니까, 아니면 엔티티의 하위 집합을 가져 와서 처리하고 파일에 쓸 수 있습니까? –
하나의 전략은 "모든 항목 검색"다음에 "각 항목 반복"을 수행해서는 안됩니다. 한 번에 한 행씩 알고리즘을 사용할 수없는 이유가 있습니까? –
@ Gilbert- 한 번에 100 개씩 하위 집합을 가져와 처리하고 마지막에 내보낼 목록에 추가 할 수 있습니다. 자식이있는 상위 엔터티는 완전히 원자 적입니다. –