2012-12-17 2 views
0

저는 LINQ 비즈니스에서이 익명 형식을 사용하고 있습니다. 그것은 이전 질문에 대한 답변을 통해 작업 한 결과지만, 슬프게도 나는이 일을 전혀 얻지 못하게하는 두뇌의 힘을 막지 못합니다.익명 형식 및 LINQ 및 캐스팅

나는 각 사람에게 연결된 이벤트의 제한된 목록을 반환합니다. 출처는 엔티티 프레임 워크로서 탐색 속성에서 기준 제한된 결과를 얻으려고 계속 노력하고 있습니다. 아래의 코드는 Nicholas Butler의 답변에서 얻은 나의 번역문입니다. 그러나 익명 형식을 적용 할 방법을 찾을 수 없습니다. 캐스트가 작동하지 않는 것처럼 보입니다 - 아니면 단서가 없습니다 (가능성 있음). 아무도 도와 줄 수 있습니까?

Dim test = context.persons.Where(Function (r) r.personActive).Select(Function (o) New With { _ 
       .person = o, _ 
       .events = o.events.Where(Function(e) e.eventDateTime > startdate) _ 
      }) 

      Dim Res = New ObservableCollection(Of person) 

      For Each person In test 
       Res.Add(person) 
      Next 

저를 제공합니다 :

오류 'PersonEntity.person'로 변환 할 수없는 타입의 2 값 '< 익명 형식> (라인 53)'. E : \ 보관 용 \ 일 실험 \ PersonEntity- 복사 \ PersonEntity \ personRepository.vb (61) (29) PersonEntity

이 코드에 더 들어 왔하지만 난과 함께 또 다른 오류가 나는 여전히 첨부 된 이벤트가 없습니다 캐스팅, 이벤트의 이번. ObservableList에 대한 일반 목록은 분명히 변환되지 않습니다. 그것은 내 원래의 질문에 대답하는 놀라운 방법 라운드 보인다!

Dim test = context.persons.Where(Function(r) r.personActive).Select(Function(o) New With { _ 
       .person = o, _ 
       .events = o.events.Where(Function(e) e.eventDateTime > startdate) _ 
      }) 


      Dim Res = New ObservableCollection(Of person) 

      For Each t In test 
       Dim r As New person 
       r = t.person 
       r.events = t.events 
       Res.Add(r) 
      Next 

      Return Res 

답변

1
Function(o) New With { _ 
     .person = o, _ 
     .events = o.events.Where(Function(e) e.eventDateTime > startdate) _ 
    } 

이 익명 타입이 아닌 Person을 반환 . Addperson 속성 *을 의미합니까?

For Each o In test 
    Res.Add(o.person) 
Next 
+0

이것은 또 다른 문제의 일부이며 다른 문제에서 해결할 수있었습니다. 고맙습니다. 그리고 당신의 권리 :) 그건 내가해야만하는 일입니다. 브리퍼 구문을 지적 해 주셔서 감사합니다. –

+0

... –