在ASP.NET MVC + NHibernate應用程序的開發過程中,我遇到了困難(對我而言)的問題。如何確定業務對象狀態 - NET,NHibernate
在我的項目領域,我有對象,讓我們稱他們爲「文章」(如在BBC網站或類似的東西)。此文章是由幾個屬性描述:
-author -Creation日期 -IsTemp -IsApproved
這些對象可以是在少數幾個州:
- 溫度 - IsTemp ==真,一切否則不重要
- 已批准 - 已批准==爲真
- 待定 - IsTemp ==爲假& & I sApproved ==假& & CreationDate + 10天數> DateTime.Now
- 過期 - IsTemp =假& & IsApproved ==假& & CreationDate +10天< DateTime.Now
(以上描述僅僅是一個例如,我的域名有點複雜,但問題是相同的)
這裏是一個問題:何時應該檢測文章狀態? 我希望用戶能夠列出所有爲例批准物品等
- 我應該用背景proccess更新每10分鐘所有物品的狀態?這對我來說有點臭。
- 我應該使用我的文章類(方法GetState什麼的?) - 然後我失去了查詢HQL的能力,我強迫從DB獲取所有實體以執行分頁和發現狀態
- 我應該準備狀態特定的查詢? (Repository.GetAll(State.Temp)) - 這個也很臭,因爲我不想讓我的業務規則(可以改變/擴展)泄漏到我的DAL層。
- 我應該擴展NHibernate功能嗎?我從來沒有這樣做,所以我不知道這是否是真實的。
這對我來說是個大問題。有任何想法嗎?
最好的問候, Karczas
我看到了類似的解決方案,但問題是,在一個請求文章狀態是待定和另一個請求(即100毫秒後),它可能是例如過期。時間是改變狀態的因素之一,所以持久狀態不是解決方案 – karczas 2011-02-14 16:15:40
我不認爲我會跟着你。 – UpTheCreek 2011-02-15 07:36:30