实体框架的枚举控制器
问题描述:
我在域模型的枚举:实体框架的枚举控制器
public enum MessageType
{
Ad = 1,
Ask = 2
}
我使用DTO从一个服务层数据传输到UI层。
在控制器我需要从服务层获得某种类型的所有消息:
_messageService.GetAllAds(MessageType.Ad);
由于域模型在UI没有被映射,我怎样才能把它传递给UI?
谢谢
答
我在一个项目中遇到了这个问题。我最终将enum复制到UI层,并基本上有两个(几乎)相同的枚举(使用略有不同的名称来区分它们)。本质上,它就像一个枚举的视图模型。
这不是一个好的解决方案,如果我想出更好的东西,但它可以工作,我可能会在稍后重构我的项目。这样做的一个好处是,你可以用UI相关属性修饰你的UI层enum,这些属性在域图层中根本没有意义。
答
你需要让你的控制器和服务之间共同可用的东西..这是否是你目前正在使用的MessageType
枚举或一些其他的事情..也许你想传递一个string
在那里,但我不会” t推荐它。就我个人而言,我也不想让任何域实体可以直接从控制器访问(我使用视图模型),但是对于枚举,我会例外。
我的建议:允许控制器仍然使用该枚举。