У меня есть GridView, который связан с элементом управления LINQDataSource, который возвращает коллекцию клиентов.
В моей DataGrid мне нужно отобразить номер домашнего телефона клиента, если он у него есть. Телефонные номера клиента хранятся в отдельной таблице с внешним ключом, указывающим на таблицу клиентов.
Следующее связующее выражение дает мне первый номер телефона для клиента:
<asp:TemplateField HeaderText="LastName" SortExpression="LastName">
<ItemTemplate>
<asp:Label ID="PhoneLabel" runat="server" Text='<%# Eval("Phones[0].PhoneNumber") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
Мне нужно выяснить, как конкретно получить номер домашнего телефона (фильтр по типу телефона) и справиться со сценарием, когда у клиента нет домашнего телефона в базе данных. Прямо сейчас это исключение вне диапазона, если у клиента нет никаких телефонных номеров.
Я пытался использовать оператор Where с лямбда-выражением для фильтрации типа телефона, но он не работает:
<%# Eval("Phones.Where(p => p.PhoneTypeId == 2).PhoneNumber") %>
Решения или ссылки на любые хорошие статьи на эту тему будут высоко оценены.