我设置的产品具有名为Identifiers
的属性,该属性是List<>
标签和值,例如Label =“EAN”和Value =“8001585008186”等。标签存储在标识符标签的单独表中,称为ProductIdentifiers
,值作为有效负载存储在名为IdentifiersForProducts
的链接表中。导航的第一级是根据产品类别查找产品,第二级是查找产品的标识符值,第三级是查找标识符的标签。
目前,我可以检索所有产品信息,包括Identifier
的值,但我无法获取标签。
Product
也有List<>
Properties
,其连接方式与Identifiers
完全相同。这适用于重量,大小,颜色等等。
这些是涉及的模型:
public class Product
{
public int Id { get; set; }
public string Title { get; set; }
public string Info { get; set; }
public string LongInfo { get; set; }
public decimal Price { get; set; }
public List<ProductImage> Images { get; set; }
public List<PropertyForProduct> Properties { get; set; }
public List<IdentifierForProduct> Identifiers { get; set; }
public List<FrontPageProduct> InFrontPages { get; set; }
public List<ProductInCategory> InCategories { get; set; }
}
public class IdentifierForProduct
{
public int Id { get; set; }
public int ProductId { get; set; }
public int ProductIdentifierId { get; set; }
public string Value { get; set; }
public Product Product { get; set; }
public ProductIdentifier Identifier { get; set; }
}
public class ProductIdentifier
{
public int Id { get; set; }
public string Label { get; set; }
public int SortOrder { get; set; }
public List<IdentifierForProduct> Identifiers { get; set; }
}
这是我的疑问:
List<Product> products = await (
_context.ProductsInCategories
.Include(p => p.Product)
.ThenInclude(ids => ids.Identifiers)
.Include(p => p.Product)
.ThenInclude(props => props.Properties)
.Where(pc => pc.ProductCategory.Id == cat_id)
.OrderBy(p => p.SortOrder)
.Select(p => new Product
{
Id = p.Product.Id,
Title = p.Product.Title,
Info = p.Product.Info,
Price = p.Product.Price,
Identifiers = p.Product.Identifiers,
Properties = p.Product.Properties
})
).ToListAsync();
在视图中,我正在显示它:
foreach (var item in Model.Products)
{
@Html.DisplayFor(modelItem => item.Title)<br />
@Html.DisplayFor(modelItem => item.Info)
<br />
@{ if (item.Identifiers != null)
{
foreach (var ids in item.Identifiers)
{
<span>@ids.Label</span> <!-- Label is blank -->
<span>:</span>
<span>@ids.Value</span><br /> <!-- Value is ok! -->
}
}
}
@Html.DisplayFor(modelItem => item.Price)
}
那么,我该如何检索最后一位数据?