0

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

产品有很多价格,一个价格有 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)

我也尝试过选择:

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

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

4

1 回答 1

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

傻我:) 亲切的问候!

于 2018-10-25T13:34:09.050 回答