현재 Lambda Expressions를 사용하여 동적 select 절을 작성하고 중첩 된 컬렉션을 처리해야하는 시점에 갇혀 있습니다. 예를배열에 대한 Lambda 바인딩 식
class A
{
public string Property1 {get;set;}
public string Property2 {get;set;}
public IEnumerable<B> Property3 {get;set;}
}
class B
{
public string Prop1 {get;set;}
public int Prop2 {get;set;}
}
위해 나는 위와 같이 클래스 A와 B가 있고 나는 그러나 내에서이 데이터 그리드에 바인더 제본받을 예정으로, 모든 속성이 필요하지 않은 수집을 얻는다. 그 같은보기 의존. 보기는 표시 할 필드를 정의합니다. 따라서 나는 즉시 객체를 생성하고 필요한 객체를 추가합니다. 아래 그림과 같이이 난 내가 만드는 오전로 모음입니다 Property3, 그것은 작동하지 않습니다 싶어하지만 경우에, 나는 클래스 A에서만 속성 1과 Property2를 선택해야하는 경우이 작동
Expression.Bind(p, Expression.PropertyOrField(entityExpression, p.Name))
, 람다 식을 사용하여 수행 한 즉석에서 입력하고 필요한 속성을 추가하기 만하면됩니다. 따라서 런타임에 나는
IEnumerable<RuntimeType2> => RuntimeType2 { string Prop1 {get;set; }
IEnumberable<RuntimeType1> =>
RuntimeType1 { string Property1 {get;set;
IEnumerable<RuntimeType2> Property3 {get;set;} }
과 같은 시나리오를 갖게 될 것입니다. 위의 시나리오를 달성하고 싶습니다. 간단한 경우 나는 이것을 할 수 있지만 컬렉션에 바인딩하는 데 어려움을 겪고 있습니다.
내 문제가 충분히 기술되기를 바랍니다. 더 많은 정보가 필요하시면 회신 해주십시오. 모든 포인터가 도움이 될 것입니다.
정확히 무엇이 문제입니까? 왜 콜렉션 속성을 만들지 않는가? 그것은 무엇을 하는가? (예외?)? – svick
예 유형이 다르다. 문제는 Expressio를 사용하여 속성 매핑을 지정할 수 없다는 것입니다. 예를 들어 위에서 RuntimeType2의 Prop1에 대한 클래스 B의 Prop1 매핑을 언급 한 것과 같습니다. – TBone