Установить Razor CheckBoxFor проверенное значение на основе логического свойства в лямбда-выражении LinQ - PullRequest
0 голосов
/ 25 октября 2018

Кажется, я не могу создать это, и я хотел бы получить несколько предложений.У меня есть следующие объекты: продукт, цена и скидка.

У товара много цен, и у цены 1 товар.1 Цена имеет много скидок, а 1 скидка имеет 1 цену.

Я хотел бы определить статус «Проверено» на основе логического свойства «IsActive» для @CheckBoxFor (...), но я борюсь сthis Lambda ...

Свойство IsActive не сопоставлено, оно истинно или ложно на основе сравнения текущей даты и даты начала и окончания объекта Discount.

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

Моя логика неверна, что я делаю не так?Большое спасибо за любые отзывы!С уважением

1 Ответ

0 голосов
/ 25 октября 2018

Хорошо, так что я понял это, я не видел это ясно.Сначала мне нужно было взять цену, используя .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

Глупый я :) С уважением!

...