0
votes

Impossible de lancer l'objet de type 'system.int32' pour taper "produit". Dans la liste distincte

J'utilise Linq vers SQL.

Voici les données de ma base de données p> xxx pré>

Je récupère tous mes produits comme ci-dessous P>

List<Product> cats = c.Select(cat => cat.CatId).Distinct().ToList();


2 commentaires

Votre instruction SELECT renvoie une collection d'identifiants de catégorie, et non d'une collection de produits. Pouvez-vous expliquer pourquoi vous avez attendu que la déclaration renvoie une liste de produits?


Je pensais avoir reçu des produits avec des identifiants distincts ... Je suppose que Morelinq est la voie à suivre .....


3 Réponses :


0
votes

Le résultat souhaité de Catid distinct qui n'est actuellement pas en charge par défaut LINQ. Je suggère d'utiliser DistTyBy dans Morelinq xxx


0 commentaires

-2
votes

Vous devez créer une classe comme celle-ci xxx

pour utiliser ce xxx


0 commentaires

0
votes

Vos projets logiques Catid distincts CODE> et convertissant cela en une liste code>. C'est pourquoi vous ne pouvez pas la capturer sous la liste code> (comme il n'y a pas de conversion implicite entre int code> et personnalisé produit code>). Vous avez peu d'options ici pour récupérer des produits code> distincts CODE> si ce pour quoi vous visez: p>

a. Obtenez tous les distincts catid code> et itérer sur la collection code> du produit code> pour créer un sous-ensemble. P>

IEnumerable<Product> distinctProducts = c.GroupBy(pro => pro.CatId)
                                                 .Select(f => f.First());


0 commentaires