Дескриптор фильтра источника данных домена Silverlight 4 для вложенного свойства
У меня есть объектная модель, где я проверяю значение фильтра вложенного дочернего свойства, например
Заказ -> Клиент
И у клиента есть свойство, например Name = "Joe Bloggs"
Служба моего домена возвращается IQueryable<Order>
, Мой источник данных домена привязан к этому (и, в свою очередь, моя таблица привязана к источнику данных домена), и у меня есть дескриптор фильтра, установленный примерно так:
<ria:FilterDescriptor Operator="Contains" Value="{Binding Text, ElementName=txtCustomerName}" PropertyPath="Customer.Name" IgnoredValue=""/>
Все это прекрасно работает, за исключением того, что отношения между Заказом и Клиентом являются необязательными, т.е. у Заказа может не быть Клиента, и поэтому свойство навигации Клиента может быть нулевым. В такой ситуации при выполнении запроса источник данных домена выдает исключение нулевой ссылки - возможно, потому, что он пытается обойти клиента и получить значение имени, когда, конечно, клиент является нулевым.
Кто-нибудь придумал хорошее решение этой проблемы?
1 ответ
В итоге я решил эту проблему с помощью MVVM, эквивалентного DomainDataSource - DomainCollectionView и связанных с ним классов. Благодаря этому вы получаете больше контроля над составом запроса, и поэтому я сделал свой запрос на нулевую проверку свойства Customer перед оценкой свойства Name для него.