2012-09-15 3 views
0

아주 간단한 예로 A Company에는 man 사용자가 있습니다. 회사와 사용자라는 두 개의 테이블이 있습니다. User 테이블에는 CompanyId 외래 키가 있습니다. 회사 및 모든 사용자의 목록을 채워야한다고 가정하면 어떻게 이것을 데이터 저장소로 매핑 할 수 있습니까?IDataReader 및 SQL을 사용하여 1 : N 관계를 선택하고 매핑하는 방법

다중 선택 문이 필요합니까? 하나는 모든 회사를 필요로하고 다른 하나는 선택한 회사 내의 모든 사용자를 확보하는 것입니다. 아래의 의사 코드.

select companies; 
Loop through all companies returned and create a list of companyids for where in. 
select users where in (companyid list created above) 
attach users to selected companies  

논리적으로이 작업을 수행하는 최선의 방법은 무엇입니까?

+0

결과를 SQL Server에 조인하는 것이 가장 좋습니다. – driis

답변

0

ORM을 사용하지 않으려면 JOIN 문을 사용하고 Dictionary을 사용하여 각 회사의 기본 키를 다음 키의 키로 저장하십시오. 사전을 입력 한 다음 인스턴스의 콜렉션을 포함 할 사전 값으로 Company 인스턴스를 입력하십시오.

예.

SELECT [column list] FROM Companies c INNER JOIN Users u ON u.CompanyId = c.Id; 
+0

그런 다음 회사를 매핑 할 때 동일한 값을 가진 모든 결과에 대해 회사를 구축하지 않는지 확인하십시오. 회사 1에는 10 명의 사용자가 있으며, 수동으로 확인하지 않고 동일한 회사를 10 번 구축하게됩니까? –

+0

그렇습니다. 사전이 어떤 회사 인스턴스가 이미 생성되었는지 추적하는 것이 유용 할 수 있습니다. – devdigital

관련 문제