2013-08-28 2 views
2

Northwind를 예로 들어주십시오.동적 비교 연산자를 사용하여 람다 식 (조건 자) 작성

내 목표는 Linq to Entity를 사용하여 직원을 동적으로 검색하는 것입니다. 아마

내 발현 : 여기 오퍼레이터 '>'

Expression<Func<Employee, bool>> exp= em => em.EmployeeID > 2; 

은 '포함'등, '<' '='> < '를 런타임에 콤보 박스가 선택되고, 그 수있다.

제 질문은, 선택한 연산자로 표현식을 동적으로 작성하는 방법입니다.

한 가지 중요한 점은 'if'및 'switch'와 같은 선택 문의 허용이 없음을 의미합니다..

답변을 보내 주시면 감사하겠습니다. 당신의 람다 내부 조건문이 당신에게보기 흉한 보면

+0

나도 몰라, 왜? –

+0

@Brad Christie하지만 그 중 하나는 아닙니다. –

+0

@ Raphaël Althaus, 그 중 하나가 좋다, 나는 그것을 먼저 조사 할 것이다. 감사! –

답변

0

, 당신은 내가 함수가 사용하는 연산자를 대표하는 ToString 메소드를 Func<Employee, bool>을 가지고 있으며, 우선 클래스를 만들 것이다 함수를

Expression<Func<Employee, bool>> exp= em => foo(em, otherParam); 

public static bool foo(Employee em, otherType otherParam) 
{ 
    ... 
} 
+0

죄송합니다. ExpressionType과 함께 어떻게 실행됩니까? –

0

를 사용할 수 있습니다. 그런 다음 ComboBoxItemsSource으로 해당 클래스의 ObservableCollection을 사용합니다.

는 클래스 Operator하고 작업을하게 수행 할 수있는 코드 전화 : 사람을 downvoted 왜

var op = dropDown.SelectedItem as Operator; 

if (op != null) 
{ 
    op.Function(employee); 
} 
+0

감사합니다.하지만 "운영자"유형을 설명 할 수 있습니까? 저의 경우 ExpressionType입니다. –