我的模型中有 3 个实体。A->B->C,其中 A 是父级,C 是子级。IC 是从 B 派生的,B 是从 A 派生的。我将 C 加载到数据网格中,我需要能够显示 B 和 A 的值。现在我可以通过以下方式显示 B 的值:
dgIA.ItemsSource = ctx.C.OfType<SOME_TYPE>().Include("B");
在我的 xaml 中,我说:
<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,但如果我尝试通过说来包含 A:
ctx.C.OfType<SOME_TYPE>().Include("B").Include("A");
我得到了例外:
指定的包含路径无效。EntityType 'DB.SOME_TYPE' 没有声明名为 'A' 的导航属性。
我理解它为什么这样做,因为我的实体 C 仅对 B 具有导航属性,而 B 对 A 具有导航属性,但我希望 C 能够以我展示的方式从 A 获取值。我该怎么做?非常感谢!