У меня довольно простой запрос Linq (упрощенный код):
dim x = From Product In lstProductList.AsParallel
Order By Product.Price.GrossPrice Descending Select Product
Продукт - это класс. Product.Price — это дочерний класс, а GrossPrice — одно из его свойств. Чтобы определить цену, мне нужно использовать Session("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 = From Product In lstProductList.AsParallel
Упорядочить по Product.Price.GrossPrice По убыванию Выберите продукт
В Product.Price.GrossPrice Get:
return me.NetPrice+me.VatAmount
В Product.Price.NetPrice Get:
return NetBasePrice*Session("exchange_rate")
Опять же, упрощенный код, слишком много, чтобы вставлять его сюда. Работает нормально, если я разворачиваю запрос в циклы For.
Response.Write(Session("exchange_rate"))
? - person Nate   schedule 16.03.2010