我有一個將.NET枚舉映射到數據庫表的問題。想象一下,我有一張名爲「狀態」的表格,其中包含以下值:從數據庫加載枚舉
StatusID |名稱
1草案
2就緒
...
...
在應用層,我可以使用一個存儲庫來獲得所有狀態爲一個IList對象。但是,這種方法的問題在於,我無法在業務邏輯中引用特定狀態。例如,我怎樣才能實現這樣的東西?
if (myObject.Status is Ready)
do this
else if (myObject.Status is Draft)
do that...
由於狀態是動態加載,我不能肯定地告訴什麼在列表特定狀態對象表示草案或準備就緒狀態。
或者,我可以只使用一個枚舉像
public enum Statuses
{
Draft,
Ready
};
然後,我可以很容易地在我的業務邏輯中使用的枚舉。
if (myObject.Status == Statuses.Draft)
// do something...
但是,這種方法的問題是,每次用戶想要修改狀態列表(添加一個新的狀態,或重命名現有狀態)的應用程序必須重新編譯。我們無法從數據庫動態加載狀態。
有沒有其他人遇到類似的情況?任何解決方案/模式?
乾杯,
MOSH
你可能想看看戰略模式,看看是否有幫助。 – Kane 2010-04-05 11:05:22