... | ... | @@ -230,9 +230,9 @@ Expression 객체의 인스턴스 데이터의 역할을 하는 람다 식. |
|
|
|
|
|
Expression 객체는 데이터를 트리 자료구조 형태로 담고 있다. (Expression Tree)
|
|
|
|
|
|
Expression.Compile : 데이터로 담겨 있는 람다 식은 컴파일이 가능함, 이 함수는 델리게이트를 반환하고 따라서 함수 호출이 가능함.
|
|
|
Expression.Compile : 데이터로 담겨 있는 람다 식은 컴파일이 가능함, 이 메서드는 델리게이트를 반환하고 따라서 함수 호출이 가능함.
|
|
|
|
|
|
람다 식을 직접 구성하여 Expression 트리를 구성할 수 있음.
|
|
|
람다 식을 직접 구성하여 Expression Tree를 구성할 수 있음.
|
|
|
|
|
|
여러가지 메서드를 제공함 (Expression 타입의 팩토리 메서드, System.Linq.Expressions에 정의)
|
|
|
|
... | ... | @@ -311,10 +311,9 @@ public interface IEnumerable<T> : IEnumerable |
|
|
```
|
|
|
|
|
|
즉, Expression타입의 프로퍼티가 없다.
|
|
|
왜냐면, LINQ eo Objects는 같은 프로세스내에서 처리될 객체들을 대상으로 쿼리를 하기 때문에 다른 형태로 변환될 필요가 없기 때문이다.
|
|
|
|
|
|
왜냐면, LINQ eo Objects는 같은 프로세스내에서 처리될 객체들을 대상으로 쿼리를 하기 때문에 다른 형태로 변환될 필요가 없기 때문이다.
|
|
|
|
|
|
그렇다면, 굳이 expression tree같은 자료구조로 변환할 필요가 없으니 대략 아래와 같은 규칙이 성립한다.
|
|
|
그렇다면, 굳이 expression tree 같은 자료구조로 변환할 필요가 없으니 대략 아래와 같은 규칙이 성립한다.
|
|
|
|
|
|
- 코드가 같은 프로그램(또는 프로세스)내에서 실행되는 경우라면 IEnumerable<T>
|
|
|
- 쿼리 표현식을 다른 프로그램(또는 프로세스)에서 처리하기 위해서 문자열 형태로 변환해야 한다면 expression tree를 포함하는 IQueryable<T>를 사용
|
... | ... | |