设置 Razor 复选框用于基于 LinQ lambda 中的布尔属性的已选中值



我似乎无法构建这个,我想要一些建议。 我有以下实体产品,价格和折扣。

产品有很多价格,一个价格有 1 个产品。 1 价格有很多折扣,1 折扣有很多折扣。

我想根据布尔属性"IsActive"定义@CheckBoxFor(...(的"已检查"状态,但我正在为此 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)

我还尝试了选择:

@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)

我的逻辑有缺陷吗,我做错了什么? 非常感谢您的任何反馈! 亲切问候

好吧,我想通了,我没有看清楚。 我需要首先使用.SingleOrDefault((在第一条语句之后,在该选择之后继续.折扣物业:

@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

傻我:) 亲切问候!

最新更新