C# 控制器中的实体框架枚举
我在域模型中有一个枚举:C# 控制器中的实体框架枚举,c#,asp.net-mvc,entity-framework,enums,C#,Asp.net Mvc,Entity Framework,Enums,我在域模型中有一个枚举: public enum MessageType { Ad = 1, Ask = 2 } 我使用DTO将数据从服务层传输到UI层 在控制器中,我需要从服务层获取特定类型的所有消息: _messageService.GetAllAds(MessageType.Ad); 由于域模型未映射到UI中,如何将其传递到UI 谢谢不久前我在一个项目中遇到了这个问题。最后,我将枚举复制到UI层,得到了基本上两个(几乎)相同的枚举(使用稍微不同的名称来区分它们)。本质上
public enum MessageType
{
Ad = 1,
Ask = 2
}
我使用DTO将数据从服务层传输到UI层
在控制器中,我需要从服务层获取特定类型的所有消息:
_messageService.GetAllAds(MessageType.Ad);
由于域模型未映射到UI中,如何将其传递到UI
谢谢不久前我在一个项目中遇到了这个问题。最后,我将枚举复制到UI层,得到了基本上两个(几乎)相同的枚举(使用稍微不同的名称来区分它们)。本质上,它类似于枚举的视图模型
这不是一个很好的解决方案,如果我能想出更好的办法,我可能会在以后重构我的项目,但它是有效的。这样做的一个好处是,您可以使用与UI相关的属性来修饰UI层枚举,而这些属性在域层中根本没有意义。您需要在控制器和服务之间提供一些共同点。。无论这是您当前使用的
MessageType
enum还是其他内容。。也许你想在那里传递一个字符串,但我不推荐这样做。就我个人而言,我也不想让任何域实体直接从控制器访问(我使用视图模型),但对于枚举,我有一个例外
我的建议是:允许控制器仍然使用该枚举