2014-06-11 4 views
0

저는 사용자가 "name"과 같이 원하는 속성의 이름을 입력 할 수있는 필드 (HTML 입력 텍스트)가 있습니다. 이 값을 사용하여 객체의 Name 속성 값을 반환해야합니다. 그런데, 사용자가 Contact.PhoneNumber를 입력하면 User.Contact.PhoneNumber와 같은 깊이 속성을 구현해야합니다. 내가 할 수 있을까?문자열 만 사용하여 LINQ 속성을 읽는 방법?

저는 LINQ를 사용하고 있으므로 User 사용자는 lazyloaded입니다. 속성 연락처는 아직로드되어 있지 않아야합니다. 지금 노력하고있어 여기에

:

ParameterExpression input = Expression.Parameter(typeof(User)); 
var expr = Expression.Property(input, typeof(User).GetProperty("Name")); 
var justatest = Expression.Lambda<Func<User, string>>(expr, input).Compile(); 
+0

입니다 ? 뭔가 해봤습니까? –

+0

Plz 덧글 추가 –

+0

나는 ParameterExpression 유형을 시도하고 있지만 밀착 해있다. 나는 그 지위에 넣을거야. –

답변

1

내가 속성의 속성을 가져 생각, User.Contact.PhoneNumber 등 어려운 얻을 수 있습니다. 문이 깊어지면 중첩 된 PropertyExpressions을 가져야합니다.

어쩌면 동적 LINQ 라이브러리는 당신을 위해 쉽게 만들 것입니다 : 현재 코드는 무엇 http://www.nuget.org/packages/System.Linq.Dynamic/

+0

니스, 나는 그것에게 시험을 줄 것이다! 작동한다면 대답으로 받아들이려면 여기로 돌아 오십시오. –

+0

어쩌면 내가 잘못 사용하고 있지만 동적 쿼리에 사용하고있을 수 있습니다. 나는 이미 물건을 가지고있다. 이 객체의 속성 값을 준비하기 만하면됩니다. 다른 힌트 요? –

관련 문제