Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 控制器中的实体框架枚举_C#_Asp.net Mvc_Entity Framework_Enums - Fatal编程技术网

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还是其他内容。。也许你想在那里传递一个
字符串,但我不推荐这样做。就我个人而言,我也不想让任何域实体直接从控制器访问(我使用视图模型),但对于枚举,我有一个例外

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