2013-08-15 2 views
0

내 모델에 엔티티가 3 개 있습니다. A -> B -> C, A는 수퍼 부모, C는 자식입니다. IC는 B에서 파생되고 B는 A에서 파생됩니다. 데이터 격자에 C를로드하고 B 및 A의 값을 표시 할 수 있어야합니다. 이제는 다음과 같이 B 값을 표시 할 수 있습니다.Entity Framework- 탐색 속성에서 값 가져 오기

dgIA.ItemsSource = ctx.C.OfType<SOME_TYPE>().Include("B"); 

<DataGridTextColumn Header="property 1" Binding="{Binding A.Name}"/> 
    <DataGridTextColumn Header="property 2" Binding="{Binding B.Name}"/> 
    <DataGridTextColumn Header="property 3" Binding="{Binding Frequency}"/>//a value in C 

내가 A.Name를 표시 할 수 있어야하지만, 내가 말하여 포함하려고하면 :

그리고 내 XAML에서 내가 말할

ctx.C.OfType<SOME_TYPE>().Include("B").Include("A"); 

나는 예외를 얻을 :

지정한 포함 경로가 유효하지 않습니다. EntityType 'DB.SOME_TYPE'은 이름이 'A'인 탐색 속성을 선언하지 않습니다.

내 엔티티 C는 B에 대한 탐색 속성 만 있고 B에는 A에 대한 탐색 속성이 있지만 C가 그 값에서 A 값을 얻을 수 있기를 바란다. 나는 보여 주었다. 어떻게하면 좋을까요? 고마워요! 내 XAML에서 말하면서 그래서

+2

대신 포함 ("B.A")을 시도하십시오. –

+0

이 예외는 발생하지 않지만 데이터를 가져 오지는 않습니다. 그래서 다른 이유가 있는지 나는 모른다. –

+0

해결되었습니다. xaml에 ZONE.GACC.Name을 써야했습니다. 고맙습니다! –

답변

0

는 :

<DataGridTextColumn Header="property 1" Binding="{Binding B.A.Name}"/> 

이것은 A.에게

그리고 액세스 할 수 B의 탐색 속성을 액세스 :

dgIA.ItemsSource = ctx.A.OfType<SOME_TYPE>(); 

전혀 포함 또는 아무것도 필요했다. Apprently EF의 'Relationship Fix-Up'이이 점을 처리하면 도트 접근자가 필요합니다.

관련 문제