J'ai un GridView lié à un contrôle LINQDataSource qui renvoie une collection de clients.Expression de liaison de données pour la récupération de la valeur de la collection associée à l'aide de LINQ
Dans mon DataGrid, je dois afficher le numéro de téléphone d'un client, s'il en a un. Les numéros de téléphone d'un client sont stockés dans une table distincte avec une clé étrangère pointant vers la table client.
L'expression de liaison suivante me obtient le premier numéro de téléphone pour un client:
<asp:TemplateField HeaderText="LastName" SortExpression="LastName">
<ItemTemplate>
<asp:Label ID="PhoneLabel" runat="server" Text='<%# Eval("Phones[0].PhoneNumber") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
je dois comprendre comment obtenir le numéro de téléphone à domicile spécifiquement (filtre en fonction du type de téléphone) et gérer le scénario dans lequel le client n'a pas de téléphone à la maison dans la base de données. À l'heure actuelle, il y a exception si le client n'a pas de numéro de téléphone.
J'ai essayé d'utiliser l'opérateur Où avec une expression lambda pour filtrer le type de téléphone, mais il ne fonctionne pas:
<%# Eval("Phones.Where(p => p.PhoneTypeId == 2).PhoneNumber") %>
Solutions ou des liens vers tous les bons articles sur le sujet serait très apprécié.
Quels champs de données renvoie votre LinqDataSource? – eKek0