我似乎无法建立一个,我想提出一些建议。 我有以下实体产品,价格和折扣。
产品有很多价格,一个价格有1个产品。 1价格有很多折扣,而1折扣有1价格。
我想基于@CheckBoxFor(...)的布尔属性“ IsActive”来定义“已检查”状态,但是我正在为此Lambda苦苦挣扎...
“ IsActive”属性未映射,根据折扣实体的当前日期和开始-结束日期的比较,它是正确还是错误。
@Html.CheckBoxFor(p => p.Product.Prices.Where(price => price.Product.ID == p.Product.ID && price.PriceType == BusinessLayer.Enums.PriceType.PurchasePrice && price.Discounts.Where(discount => discount.IsActive).SingleOrDefault().IsActive)
我也尝试了Select:
@Html.CheckBoxFor(p => p.Product.Prices.Where(price => price.Product.ID == p.Product.ID && price.PriceType == BusinessLayer.Enums.PriceType.PurchasePrice && price.Discounts.Select(d => d.IsActive)).IsActive)
我的逻辑有缺陷吗,我在做什么错? 非常感谢您的任何反馈! 问候
答案 0 :(得分:0)
好的,所以我想通了,我看不清楚。 我需要先在第一条语句后使用 .SingleOrDefault()来获取价格,然后再在 .Discounts 属性上继续该选择:
@Html.CheckBoxFor(p => p.Product.Prices.Where(price => price.Product.ID == p.Product.ID && price.PriceType == BusinessLayer.Enums.PriceType.PurchasePrice).SingleOrDefault().Discounts.Where(d => d.IsActive).SingleOrDefault().IsActive
对不起,我:) 亲切的问候!