我创建了一个简单的数据表来读取地址信息 地址信息存储在多个表中:地址,城市,省,国家。为了简化这个问题,我只会提到地址和城市。 我正在通过WCF RIA Services上下文访问数据。我在服务中的查询是:
public IQueryable<Address> GetAddresses()
{
return from Ad in ObjectContext.Addresses
.Include("City")
// .Include("City.Province")
// .Include("City.Province.Country")
where Ad.AddressID == 10
select Ad;
}
为了帮助我进行调试,我将结果集限制为一个地址(Ad.AddressID == 10)。在服务元数据中包含城市表:
[Include]
public City City { get; set; }
我的DataForm的只读模板如下所示:
<dataFormToolkit:DataForm.ReadOnlyTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<dataFormToolkit:DataField Label="Street Address" >
<TextBox Text="{Binding Path=StreetAddress, Mode=TwoWay}" />
</dataFormToolkit:DataField>
<dataFormToolkit:DataField Grid.Row="1" Label="City" >
<TextBox Text="{Binding Path=City.CityName, Mode=TwoWay}" />
</dataFormToolkit:DataField>
</Grid>
</DataTemplate>
</dataFormToolkit:DataForm.ReadOnlyTemplate>
现在,当我调试我的DataForm时,我期待只显示1个地址记录。但它实际上带回了2条记录:预期的地址记录和链接的城市记录。显示的第一条记录是包含链接城市的地址。第二个显示为空白,但是当进入代码时,DataForm的CurrentItem显示它是链接到第一个地址的City记录。
如何限制DataForm中的项目以显示和浏览地址表中的项目?
答案 0 :(得分:0)
事实证明我在我的代码中加载了'AllEntities'。
dfAdd.ItemsSource = addressDataLoadResult.AllEntities;
所以解决方法是将ItemsSource更改为仅加载'Entities'。这限制了我的集合仅限地址对象。