2017-11-13 11 views
1

system.linq.dynamic.core 및 nhibernate linq와 함께 작업하고 있습니다. 이제 메서드에 두 개의 동적 linq 표현식을 전달하려고합니다. 하나는 상위 테이블 용이고 다른 하나는 조인 된 하위 목록 용입니다. 두 식의 입력 파라미터는, 그렇게 표현 랜덤이 될 수있다람다 식에서 입력 매개 변수 이름을 추출하십시오.

"X => x.Name == \"윅 \ ""

또는

"K => k.FirstName = \ "John \" "

이제 동적 linq를 사용하면 문자열 표현식을 LambdaExpression으로 구문 분석 할 수 있다는 것을 알고 있습니다.

조인을 만들려면 조인 된 테이블의 별칭이 있어야합니다. 그래서 표현식에서 'x'또는 'k'를 추출하고 싶습니다. 이것이 가능합니까?

답변

4

LambdaExpressiona Parameters property이며 람다 매개 변수에 대한 정보에 액세스하는 데 사용할 수 있습니다. 귀하의 경우 다음과 같은 형태가 될 수 있습니다 :

string GetParameterName(LambdaExpression expression) => expression.Parameters.Single().Name; 
+0

정확히 내가 무엇을 찾고 있었습니까! – Franki1986

+0

Hmmm .. 동적 linq의 ParseLambda 메서드를 사용하고 입력 매개 변수를 삭제합니다 ... 거기에 머무르게 할 수있는 기회가 있습니까? – Franki1986