我有5個不同的類都從BaseEntity繼承。我想創建一個新的模型類,它將存儲關於這五個類中的一個以及其他標識符所需的信息。根據類型返回對象
當我從數據庫中檢索這個新模型的數據時,我得到的只是一個帶類類型的字符串以及一個表示我可以從數據庫中引用的條目的整數。
例如,如果我檢索Id = 2,Type =「BaseBall」。這意味着我將需要使用我的BaseBallService來獲取Id == 2的條目。如果碰巧是Id = 2,Type =「BasketBall」,那麼我將使用BasketBallService。
目前我能想到的唯一解決方案是擁有一堆評估'type'字符串的if語句。根據類型是否匹配有效類型(BaseBall,FootBall,BasketBall等),然後返回該對象。
有沒有一種方法可以輕鬆地做到這一點,而無需在模型定義中定義所有5種類型,並且可以通過字符串if或statement來識別它?
我希望我已經清楚地發現了這個問題。讓我知道是否需要任何其他信息。我還沒有寫任何代碼。我只是試圖分析問題並形成解決方案。
我編輯了您的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –
有些東西似乎設計得很糟糕。爲什麼你需要這個「類型」信息?如果你從數據庫中得到某些東西,那麼你應該知道你想要得到什麼,它是什麼類型的? –
@WojciechKulik,包含類型和Id的表是參考表。目標是創建一個由現有類型(BasketBall,BaseBall等)產生的新表單。由於這種形式可能來自任何一種類型,我需要知道它是哪一種。 – Alex