Pregunta

Aquí está el problema que tengo en mi proyecto ASP.NET Web-Form.

Tengo datos que muestra todos los productos de la base de datos, cada producto tiene uno o más colores. En este momento escribo consultas como esta para mostrar todo el producto y la foto predeterminada de eso, pero no los colores relacionados con ese producto:

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

No sé cómo vincular los colores relacionados con un control de lista (como DataList u otros controles de listas) dentro de mi control de datos, aquí hay una vista de mi diagrama de base de datos para obtener más información:

enter image description here

¿Fue útil?

Solución

Creo que esta consulta funcionaría, aunque me disculpo de antemano si mi sintaxis está ligeramente fuera, soy más 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() };

Básicamente, en el tipo AnonyMouse que seleccione, puede usar Lambda para obtener las colecciones de uno a muchos usando Select (). Tolist (), y use .Where () para realizar el filtrado.

Espero que ayude.

Editar - En respuesta a su comentario:

Elegí las cuerdas de color hexadecimal porque parecían la mejor apuesta para crear los colores reales. Para acertar un color de hex, ver Este artículo. ¿En qué parte de la lista quieres agregar los colores?

Otros consejos

Creo que después de haber limitado los resultados a su datos, debería poder hacer algo como esto en su datalista $ <%#query.dataitem ("colores")%>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top