2013-03-13 128 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推荐它。就我个人而言,我也不想让任何域实体可以直接从控制器访问(我使用视图模型),但是对于枚举,我会例外。

我的建议:允许控制器仍然使用该枚举。