반응형
조인 작업 Join Operations
조인은 데이터베이스에 등장하는 개념입니다. 조인 작업은 집합 간에 데이터를 연결합니다. 조인 작업은 클래스 간에 참조 관계가 없더라도 데이터를 연결할 수 있습니다. 이해하기 힘든 개념이므로 공식문서를 읽으면서 익혀주시길 바랍니다. 여기서는 조인 작업이 일반 코드보다 간결하다는 점만 보여드리도록 하겠습니다.
예를 들어, 아래와 같이 정의되어 있을 때 Customer 클래스에 City 속성이 있지만 City 클래스에 Customer 와 관련된 속성이 없으므로 모든 도시에 거주하는 모든 고객의 목록을 구하려면 아래와 같이 복잡한 메서드를 작성해야 합니다.
class Customer
{
public City City { get; set; }
}
class City
{
public string Name { get; set; }
}
public static Enumberable<Tuple<City, Enumberable<Customer>>> FindAllCustomersInCity (Enumberable<Customer> allCustomers, Enumberable<City> allCities)
{
var customersInCities = new Enumberable<Tuple<City, Enumberable<Customer>>>();
foreach(var city in allCities)
{
// ...
}
}
반면 조인 작업으로 각 도시에 거주하는 모든 고객 집합을 간결하게 구할 수 있습니다.
public static Enumberable<Tuple<City, Enumberable<Customer>>> FindAllCustomersInCity (Enumberable<Customer> allCustomers, Enumberable<City> allCities) {
var query = from city in allCities
join customer in allCustomers on city.Name equals customer.City.Name into customersInCities
select ( City : city, Customers : customersInCities);
// ...
}
반응형
'Develop > .NET 가이드' 카테고리의 다른 글
[C#] 병렬 프로그래밍 Parallel Programming (2) - 작업 병렬화 (2) | 2020.02.08 |
---|---|
[C#] 병렬 프로그래밍 Parallel Programming (1) - 데이터 병렬화 (0) | 2020.02.05 |
[C#] LINQ 사용방법 - 시퀀스 작업 SequenceEqual, Concat, Zip (0) | 2020.02.02 |
[C#] LINQ 사용방법 - 집계 작업 Aggregate (0) | 2020.02.02 |
[C#] LINQ 사용방법 - 집계 작업 Average (0) | 2020.02.02 |
꾸준히 노력하는 개발자 "김예건" 입니다.