这是我在ASP.NET web表单项目中遇到的问题。
我有一个Datalist,它显示了数据库中的所有产品,每个产品都有一种或多种颜色。目前,我编写这样的查询是为了显示所有产品和该产品的默认照片,但不显示与该产品相关的颜色:
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();我不知道如何将相关的颜色绑定到我的datalist控件中的列表控件(如DataList或其他列表控件),下面是我的数据库图表的视图,以了解更多信息:

发布于 2011-06-16 19:48:24
我认为这个查询可以工作,尽管我提前道歉,如果我的语法有一点问题,我更像是VB而不是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() };基本上,在您选择的匿名类型中,可以使用lambda使用Select().ToList()获取一对多集合,并使用.Where()执行过滤。
希望这能有所帮助。
编辑-对您的评论的回应:
我选择了十六进制的颜色字符串,因为它们看起来是创建实际颜色的最佳选择。要从十六进制中验证颜色,请参见this article。你想在列表的什么地方添加颜色?
发布于 2011-06-16 20:37:02
我相信在将结果绑定到数据列表之后,您应该能够在datalist $<%#query.DataItem("Colors")%>中执行以下操作
https://stackoverflow.com/questions/6371200
复制相似问题