... | @@ -325,7 +325,7 @@ List<Lecture> lectures = new List<Lecture> |
... | @@ -325,7 +325,7 @@ List<Lecture> lectures = new List<Lecture> |
|
```
|
|
```
|
|
|
|
|
|
#### **from, select**
|
|
#### **from, select**
|
|
* **데이터 전체를 조회하여 객체로 반환**
|
|
* **모든 요소를 선택하여 해당 객체로 반환**
|
|
|
|
|
|
```
|
|
```
|
|
// SELECT * FROM students AS student
|
|
// SELECT * FROM students AS student
|
... | @@ -347,7 +347,7 @@ Choi (3학년) : 2.7 학점 |
... | @@ -347,7 +347,7 @@ Choi (3학년) : 2.7 학점 |
|
Jeong (1학년) : 4.1 학점
|
|
Jeong (1학년) : 4.1 학점
|
|
```
|
|
```
|
|
|
|
|
|
* **데이터의 일부를 조회하여 해당 형식으로 반환**
|
|
* **일부 요소를 선택하여 해당 형식으로 반환**
|
|
|
|
|
|
```
|
|
```
|
|
// SELECT * FROM students AS student
|
|
// SELECT * FROM students AS student
|
... | @@ -369,7 +369,7 @@ Choi |
... | @@ -369,7 +369,7 @@ Choi |
|
Jeong
|
|
Jeong
|
|
```
|
|
```
|
|
|
|
|
|
* **Anonymous Type을 이용해서 새로운 형식으로 반환**
|
|
* **일부 요소를 선택하여 Anonymous Type으로 반환**
|
|
|
|
|
|
```
|
|
```
|
|
// SELECT student.Name FROM students AS student
|
|
// SELECT student.Name FROM students AS student
|
... | @@ -392,7 +392,6 @@ foreach (var item in result) |
... | @@ -392,7 +392,6 @@ foreach (var item in result) |
|
```
|
|
```
|
|
|
|
|
|
#### **where**
|
|
#### **where**
|
|
|
|
|
|
```
|
|
```
|
|
// SELECT * FROM students AS student WHERE student.Year >= 2
|
|
// SELECT * FROM students AS student WHERE student.Year >= 2
|
|
|
|
|
... | @@ -411,7 +410,6 @@ Kim (3학년) : 4.3 학점 |
... | @@ -411,7 +410,6 @@ Kim (3학년) : 4.3 학점 |
|
Lee (2학년) : 3.5 학점
|
|
Lee (2학년) : 3.5 학점
|
|
Park (4학년) : 3.8 학점
|
|
Park (4학년) : 3.8 학점
|
|
Choi (3학년) : 2.7 학점
|
|
Choi (3학년) : 2.7 학점
|
|
|
|
|
|
```
|
|
```
|
|
|
|
|
|
#### **order by**
|
|
#### **order by**
|
... | @@ -439,10 +437,10 @@ Jeong (1학년) : 4.1 학점 |
... | @@ -439,10 +437,10 @@ Jeong (1학년) : 4.1 학점 |
|
```
|
|
```
|
|
|
|
|
|
#### **group by**
|
|
#### **group by**
|
|
* **데이터 전체를 조회하여 객체로 반환**
|
|
* **분류 값(Key)과 각 요소들의 객체를 Lookup 형식으로 반환**
|
|
|
|
|
|
```
|
|
```
|
|
// SELECT * FROM students AS student GROUP BY student.Greade
|
|
// SELECT * FROM students AS student GROUP BY student.Grade
|
|
|
|
|
|
var result = from student in students
|
|
var result = from student in students
|
|
group student by student.Year;
|
|
group student by student.Year;
|
... | @@ -475,7 +473,7 @@ Choi (3학년) : 2.7 학점 |
... | @@ -475,7 +473,7 @@ Choi (3학년) : 2.7 학점 |
|
Park (4학년) : 3.8 학점
|
|
Park (4학년) : 3.8 학점
|
|
```
|
|
```
|
|
|
|
|
|
* **Anonymous Type을 이용해서 새로운 형식으로 반환**
|
|
* **분류된 요소들을 Anonymous Type으로 반환**
|
|
|
|
|
|
```
|
|
```
|
|
// SELECT student.Name, student.Grade FROM students AS student GROUP BY student.Grade ORDER BY student.Year
|
|
// SELECT student.Name, student.Grade FROM students AS student GROUP BY student.Grade ORDER BY student.Year
|
... | @@ -513,7 +511,6 @@ foreach (var group in result) |
... | @@ -513,7 +511,6 @@ foreach (var group in result) |
|
```
|
|
```
|
|
|
|
|
|
#### **join**
|
|
#### **join**
|
|
|
|
|
|
```
|
|
```
|
|
// SELECT student.Name, student.Year, lecture.Subject FROM students AS student JOIN lectures AS lecture ON student.Name = lecture.Name
|
|
// SELECT student.Name, student.Year, lecture.Subject FROM students AS student JOIN lectures AS lecture ON student.Name = lecture.Name
|
|
|
|
|
... | @@ -535,7 +532,7 @@ foreach (var item in result) |
... | @@ -535,7 +532,7 @@ foreach (var item in result) |
|
{ Name = "Choi", Year = 3, Subject = "Java" }
|
|
{ Name = "Choi", Year = 3, Subject = "Java" }
|
|
```
|
|
```
|
|
|
|
|
|
#### **LINQ 예시 코드 분석**
|
|
#### **LINQ 예시 분석**
|
|
```
|
|
```
|
|
var groupTemp = from data in TxPowerItems
|
|
var groupTemp = from data in TxPowerItems
|
|
group data by data.Path into newData
|
|
group data by data.Path into newData
|
... | @@ -547,33 +544,10 @@ var groupTemp = from data in TxPowerItems |
... | @@ -547,33 +544,10 @@ var groupTemp = from data in TxPowerItems |
|
};
|
|
};
|
|
```
|
|
```
|
|
|
|
|
|
* 조회할 객체인 'TxPoertItems'를 가져와 'data'로 사용한다.
|
|
* 조회할 'TxPowerItems' 객체를 'data'로 사용한다. 'data'의 'Path'를 기준으로 분류하여 'newData'를 생성한다.
|
|
|
|
|
|
```
|
|

|
|
from data in TxPowerItems
|
|
|
|
```
|
|
|
|
|
|
|
|
* 'data'를 'Path'로 분류하여 'newData'로 저장한다. 'newData'에는 분류된 'Key'와 해당 데이터들이 저장되어 있다.
|
|
* 'newData'에는 분류 값인 'Key'와 'Key'에 따른 데이터들이 List로 'Temps'에 저장되어 있다. 또한, 'newData'의 'Key'는 오름차순으로 정렬되어 있다.
|
|
|
|
|
|
```
|
|
 |
|
group data by data.Path into newData
|
|
\ No newline at end of file |
|
```
|
|
|
|
|
|
|
|
* 'newData'의 'Key'를 오름차순(ascending)으로 정렬한다.
|
|
|
|
|
|
|
|
```
|
|
|
|
orderby newData.Key
|
|
|
|
```
|
|
|
|
|
|
|
|
* 'newData'의 'Key'와 데이터를 각각 'Key'와 'Temps'로 저장하여 Anonymous Type의 IEnumerable를 반환하여 'groupTemp'에 저장한다.
|
|
|
|
|
|
|
|
```
|
|
|
|
var groupTemp = (생략)
|
|
|
|
```
|
|
|
|
```
|
|
|
|
select new
|
|
|
|
{
|
|
|
|
Key = newData.Key,
|
|
|
|
Temps = newData.ToList()
|
|
|
|
};
|
|
|
|
``` |
|
|
|
\ No newline at end of file |
|
|