728x90
SQL에서 두 테이블을 JOIN 해서 가져오기도 하지만
C#에서 각가의 두 테이블을 Linq를 활용해서 JOIN 할 수 있다.
List<TableA> tableA = new List<TableA>();
List<TableB> tableB = new List<TableB>();
var join1 = tableA.Join(
tableB,
a => a.Code, b => b.Code,
(a, b) => new { b.ColumnB, a.ColumnA });
var join2 = from a in tableA
join b in tableB on a.Code equals b.Code
select new { b.ColumnB, a.ColumnA };
위 두 가지 방식으로 사용할 수 있는데
join1은 Linq query syntax, join2는 Linq method chain 으로 부른다.
tableA, tableB의 element들의 Code property로 inner join을 하고
tableA의 ColumnA, tableB의 ColumnB을 select 한다.
public class TableA
{
public string Code { get; set; }
public string ColumnA { get; set; }
}
public class TableB
{
public string Code { get; set; }
public string ColumnB { get; set; }
}
참고로 resharper에서 query syntax에서 method chain 방식으로 변환해주기도 한다.
(나도 method chain 방식이 좋다)
728x90
'Programming > C#' 카테고리의 다른 글
[C#] Closure 문제 (0) | 2022.10.21 |
---|---|
[C#] Any() vs Count() 성능 비교 (0) | 2022.10.12 |
C# Linq 시각화 (0) | 2022.08.10 |
C# Class 내부 구성 요소의 순서 (0) | 2022.06.22 |
C# string Contains() (0) | 2022.05.03 |
댓글