2010-04-22 121 views
0

我有一個NH查詢,它返回一個帶有BasePrice的產品。根據各種其他因素(如製造商價格標記),我在C#端使用PricingService來生成「最終」價格。業務邏輯生成的NHibernate查詢

問題是我現在需要查詢這個最終值 - 即,我需要運行一個查詢,選擇特定的「最終」價格範圍內的產品,但因爲該值只存在於C#端,我不能對它進行NH查詢。

我在想,我的這種做法都是錯誤的,但我真的不希望把最終價格計算的邏輯放在SQL函數或類似的東西中,所以任何建議,將不勝感激。

+0

爲什麼你不能堅持產品的最終價格?爲什麼它是不穩定的,必須按需求計算? – 2010-04-23 03:45:52

+0

那麼最終價格取決於可由網站管理員進行即時編輯的內容,例如製造商折扣或整個網站的折扣,所有這些都會相互影響。從技術角度而言,更改其中一個值可能會觸發數據庫更新,但特別是對於站點範圍內的折扣,您應該更新許多記錄,並必須對摺扣之間的交互進行計算。 我承認,你的建議可能是一種實用的選擇。 – Lewis 2010-04-23 07:54:59

回答

1

您可以在HQL或Linq中進行計算(使用3.x中的新提供程序; 2.x則有點有限)。

+0

??你能舉一些例子嗎?你是否說你可以在你的HQL查詢中使用C#方法? – Lewis 2010-04-23 07:47:14

+0

不,您不能使用C#方法。但是你可以做預測和計算,包括其他實體,注入計算參數等。 – 2010-04-23 11:39:21