所以我的数据库里有这个:
CommodityCategories
-------------------
CommodityCategoryID (PK)
Name
Commodities
-------------------
CommodityID (PK)
CommodityCategoryID (FK)
Name
VendorsCommodities
-------------------
VendorID (PK, FK)
CommodityID (PK, FK)
Vendors
-------------------
VendorID
Name基本上,一个商品有一个商品类别,而一个供应商有多个商品。
我想显示每个商品类别的名称,并在下面显示每个供应商的名称,其中有与该商品类别相关的商品。这就是我所拥有的:
@foreach (var commodityCategory in Model.CommodityCategories)
{
<h3><a href="#">@commodityCategory.Name</a></h3>
<div>
@foreach (var vendor in Model.Vendors)
{
<span>@vendor.Name</span>
}
</div>
}我需要根据我正在循环的当前商品类别来过滤Model.Vendors。我尝试过Model.Vendors.Where(v => v.Commodities.CommodityCategories.Contains(commodityCategory)),但CommodityCategories不是v.Commodities的属性。
有什么方法可以让我这样做吗?
发布于 2011-09-29 03:14:00
这可能是可行的:
Model.Vendors.Where(v => v.Commodities.Any(c => c.CommodityCategory.Id ==
commodityCategory.Id))发布于 2011-09-29 05:32:11
我重新创建了你的数据库模式,这就是我的工作……
@foreach (var catagory in Model)
{
<h3><a href="#">@catagory.Name</a></h3>
if (catagory.Commodities.Any(commodity => commodity.Vendors.Count > 0))
{
<div>
@foreach (var vendor in catagory.Commodities.SelectMany(c => c.Vendors).Distinct())
{
<span>@vendor.Name</span><br />
}
</div>
}
}https://stackoverflow.com/questions/7587737
复制相似问题