LinqExpression을 SQL 문으로 변환하려고합니다. 예를 들어, 내 Repository 기본 클래스에서 LinqExpression을 인수로 허용하는 Find 메서드가 있습니다. Find 메서드 내에서, 나는 다음과 같은 작업을 수행하는 방법 호출 오전 :LinqExpression : 비교 평가에서 값을 얻는 방법
var equality = expression as BinaryExpression;
return equality.Left.Translate() + " = " +
equality.Right.Translate();
가 어떻게 오른쪽에있는 변수의 값뿐 아니라 변수 이름을 얻을 수를 현재 난 단지 변수를 얻고있다 이름. 전의. 찾기 (x => x.ID = variable); 변수가 현재 7로 설정되어 있으면 이름 변수가 아닌 값 7을 가져 오는 방법이 필요합니다. 변수에 저장된 값을 얻는 올바른 방법은 무엇입니까?
이 경우를 제외하고는 'expression.Right'가 상수가 아니라 클로저 변수로 캡처 된 것으로 보입니다. 그것은'ConstantExpression'이 아님을 의미합니다. – svick
네, 맞습니다. 나는 그것이 변수라는 것을 놓쳤다. 그래서 그것은 _ParameterExpression_이어야합니다. – mkoertgen