1

我有一个对象模型,我正在检查嵌套子属性的过滤器值,例如

订单 -> 客户

并且客户有一个属性,例如Name = "Joe Bloggs"

我的域服务返回IQueryable<Order>。我的域数据源绑定到这个(反过来我的 Grid 绑定到域数据源),并且我有一个过滤器描述符设置如下:

<ria:FilterDescriptor Operator="Contains" Value="{Binding Text, ElementName=txtCustomerName}" PropertyPath="Customer.Name" IgnoredValue=""/>

这一切都很好,除了订单和客户之间的关系是可选的,即订单可能没有客户,因此客户导航属性可能为空。在这种情况下,当运行查询时,域数据源会抛出一个空引用异常——大概是因为它试图遍历客户并在客户当然为空时获取名称值。

有没有人想出一个很好的解决这个问题的方法?

4

1 回答 1

0

我最终通过使用与 DomainDataSource 等效的 MVVM - DomainCollectionView 及其关联类解决了这个问题。有了这个,您可以更好地控制您的查询组合,因此我让我的查询在评估 Customer 属性之前对它的 Name 属性进行空检查。

于 2011-06-26T21:45:48.733 回答