Domanda

Ecco il problema che ho nel mio progetto ASP.NET Web-Form.

Ho un datatalist che mostra tutti i prodotti dal database, ogni prodotto ha uno o più colori. Al momento scrivo query come questa per mostrare tutta la foto del prodotto e predefinita, ma non i colori relativi a quel prodotto:

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();

Non so come legare i colori correlati a un controllo degli elenchi (come Datalist o altri controlli di elenco) all'interno del mio controllo del datatalista, ecco una vista del mio diagramma di database per ulteriori informazioni:

enter image description here

È stato utile?

Soluzione

Penso che questa domanda funzionerebbe anche se mi scuso in anticipo se la mia sintassi è leggermente fuori, sono più VB di 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() };

Fondamentalmente, nel tipo di anonimo selezionato è possibile utilizzare lambda per recuperare le collezioni da uno a molti usando select (). Tolist () e utilizzare .where () per eseguire il filtro.

Spero possa aiutare.

EDIT - In risposta al tuo commento:

Ho scelto le stringhe di colore esadecimale perché sembravano la migliore scommessa per creare i colori reali. Per cessare un colore da esadecimale, vedi Questo articolo. Dove nell'elenco vuoi aggiungere i colori?

Altri suggerimenti

Credo che dopo aver vinto i risultati al tuo datatalista, dovresti essere in grado di fare qualcosa del genere nel tuo datatalista $ <%#query.dataitem ("colori")%>

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top