У меня довольно простой запрос Linq (упрощенный код):
dim x = From Product In lstProductList.AsParallel
Order By Product.Price.GrossPrice Descending Select Product
Товар класса. Product.Price является дочерним классом, а GrossPrice является одним из его свойств. Для определения цены мне нужно использовать сессию ("exchange_rate").
Таким образом, для каждого элемента в lstProductList есть функция, которая выполняет следующие действия:
NetPrice=NetPrice * Session("exchange_rate")
(а затем GrossPrice возвращает NetPrice + VatAmount)
Независимо от того, что я пробовал, я не могу получить доступ к состоянию сеанса.
Я пробовал HttpContext.Current - но это ничего не возвращает.
Я попытался реализует IRequiresSessionState в классе (что помогает в аналогичной ситуации в общих обработчиках http [.ashx]) - не повезло.
Я использую простой режим состояния сеанса InProc. Обменный курс должен быть привязан к пользователю.
Что я могу сделать?
Я работаю с:
веб-разработка, .Net 4, VB.net
Пошаговая инструкция:
page_load (в .aspx)
dim objSearch as new SearchClass ()
dim output = objSearch.renderProductsFound ()
затем в objSearch.renderProductsFound:
lstProductList.Add (objProduct (1))
...
lstProductList.Add (objProduct (n))
dim x = Из продукта в lstProductList.AsParallel
Заказ по продукту. Цена. Цена по убыванию Выберите продукт
В Product.Price.GrossPrice Get:
вернуть мне. NetPrice + me.VatAmount
В Product.Price.NetPrice Get:
вернуть NetBasePrice * Session ("exchange_rate")
Опять же, упрощенный код, слишком много, чтобы вставить его сюда. Работает нормально, если развернуть запрос в циклы For.