嵌套属性上的Silverlight 4域数据源筛选器描述符
我有一个对象模型,我在其中检查嵌套子属性的筛选值,例如 订单->客户 并且客户拥有一个属性,例如嵌套属性上的Silverlight 4域数据源筛选器描述符,silverlight,ria,domaindatasource,Silverlight,Ria,Domaindatasource,我有一个对象模型,我在其中检查嵌套子属性的筛选值,例如 订单->客户 并且客户拥有一个属性,例如Name=“Joe Bloggs” 我的域服务返回IQueryable。我的域数据源绑定到此域数据源(反过来,我的网格绑定到域数据源),我的过滤器描述符设置如下: <ria:FilterDescriptor Operator="Contains" Value="{Binding Text, ElementName=txtCustomerName}" PropertyPath="Customer.
Name=“Joe Bloggs”
我的域服务返回IQueryable
。我的域数据源绑定到此域数据源(反过来,我的网格绑定到域数据源),我的过滤器描述符设置如下:
<ria:FilterDescriptor Operator="Contains" Value="{Binding Text, ElementName=txtCustomerName}" PropertyPath="Customer.Name" IgnoredValue=""/>
这一切都很好,但订单和客户之间的关系是可选的,即订单可能没有客户,因此客户导航属性可能为空。在这种情况下,当运行查询时,域数据源抛出一个null引用异常——可能是因为它试图遍历客户并在客户为null时获取名称值
有人想出了解决这个问题的好办法吗?我最终通过使用与DomainDataSource等价的MVVM解决了这个问题,即DomainCollectionView及其关联的类。这样,您就可以更好地控制查询的组合,因此,我让我的查询在对Customer属性求值Name属性之前对Customer属性进行空检查