我有一个对象模型,我正在检查嵌套子属性的过滤值,例如
订单 - >客户
客户有一个属性,例如Name = "Joe Bloggs"
我的域名服务返回IQueryable<Order>
。我的域数据源绑定到这个(反过来我的Grid绑定到域数据源),我有一个过滤器描述符设置如下:
<ria:FilterDescriptor Operator="Contains" Value="{Binding Text, ElementName=txtCustomerName}" PropertyPath="Customer.Name" IgnoredValue=""/>
这一切都很有效,除了Order和Customer之间的关系是可选的,即Order可能没有Customer,因此Customer导航属性可能为null。在这种情况下,运行查询时,域数据源会抛出一个空引用异常 - 大概是因为它试图遍历Customer并获取Name值,当然Customer是null。
有没有人想出这个问题的好方法?
答案 0 :(得分:0)
我最终通过使用与DomainDataSource等效的MVVM - DomainCollectionView及其相关类来解决这个问题。有了这个,你可以更好地控制你的查询组合,因此我在查询Customer属性之前对我的查询进行了空检查。