Question

Voici le problème que je rencontre dans mon projet de formulaire Web ASP.NET.

J'ai Datalist qui montre tous les produits de la base de données, chaque produit a une ou plusieurs couleurs. Pour le moment, j'écris des requêtes comme celle-ci afin d'afficher tous les produits et la photo par défaut de celui-ci, mais pas les couleurs liées à ce produit:

var query = from p in db.Products
                        from c in db.Pics
                        where c.ProductId == p.ProductId
                        where c.IsDefault == true
                        select new { p.ProductId, p.ProductType, p.Name, p.Number, p.Package, p.Model, p.Size, p.Material, p.MantoLengh, c.PicAddress};

            DataList1.DataSource = query;
            DataList1.DataBind();

entrez la description de l

Était-ce utile?

La solution

Je pense que cette requête fonctionnerait bien que je m'excuse à l'avance si ma syntaxe est légèrement différente, je suis plus VB que C # ...

        var query = from p in db.Products 
                    select new { p.ProductId, 
                        p.ProductType, 
                        p.Name, 
                        p.Number, 
                        p.Package, 
                        p.Model, 
                        p.Size, 
                        p.Material, 
                        p.MantoLengh, 
                        p.Pics.Where(x => x.IsDefault).Select(x => x.PicAddress).ToList(), 
                        p.Colors.Select(x => x.ColorHex).ToList() };

Fondamentalement, dans le type anonyme que vous sélectionnez, vous pouvez utiliser lambda pour récupérer les collections un-à-plusieurs en utilisant Select (). ToList (), et utiliser .Where () pour effectuer le filtrage.

J'espère que cela vous aidera.

MODIFIER - En réponse à votre commentaire:

J'ai choisi les chaînes de couleurs hexadécimales car elles semblaient être le meilleur choix pour créer les couleurs réelles.Pour cerate une couleur à partir de Hex, voir cet article .À quel endroit de la liste voulez-vous ajouter les couleurs?

Autres conseils

Je pense qu'après avoir lié les résultats à votre datalist, vous devriez pouvoir faire quelque chose comme ça dans votre DataList $ <% # query.DataItem ("Colors")%>

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top