2013-03-13 156 views
1

我在域模型的枚舉:實體框架的枚舉控制器

public enum MessageType 
{ 
    Ad = 1, 
    Ask = 2 
} 

我使用DTO從一個服務層數據傳輸到UI層。

在控制器我需要從服務層獲得某種類型的所有消息:

_messageService.GetAllAds(MessageType.Ad); 

由於域模型在UI沒有被映射,我怎樣才能把它傳遞給UI?

謝謝

回答

0

我在一個項目中遇到了這個問題。我最終將enum複製到UI層,並基本上有兩個(幾乎)相同的枚舉(使用略有不同的名稱來區分它們)。本質上,它就像一個枚舉的視圖模型。

這不是一個好的解決方案,如果我想出更好的東西,但它可以工作,我可能會在稍後重構我的項目。這樣做的一個好處是,你可以用UI相關屬性修飾你的UI層enum,這些屬性在域圖層中根本沒有意義。

0

你需要讓你的控制器和服務之間共同可用的東西..這是否是你目前正在使用的MessageType枚舉或一些其他的事情..也許你想傳遞一個string在那裏,但我不會」 t推薦它。就我個人而言,我也不想讓任何域實體可以直接從控制器訪問(我使用視圖模型),但是對於枚舉,我會例外。

我的建議:允許控制器仍然使用該枚舉。