【问题标题】:Entity Framework Enum in Controller控制器中的实体框架枚举
【发布时间】:2013-03-13 00:11:58
【问题描述】:

我在域模型中有一个枚举:

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

我使用 DTO 将数据从服务层传输到 UI 层。

在控制器中,我需要从服务层获取某种类型的所有消息:

_messageService.GetAllAds(MessageType.Ad);

由于域模型未映射到 UI,我如何将其传递给 UI?

谢谢

【问题讨论】:

    标签: c# asp.net-mvc entity-framework enums


    【解决方案1】:

    不久前,我在我的一个项目中遇到了这个问题。我最终将枚举复制到 UI 层,并且基本上有两个(几乎)相同的枚举(名称略有不同以区分它们)。本质上,它就像枚举的视图模型。

    这不是一个很好的解决方案,如果我想出更好的东西,我可能会在以后重构我的项目,但它确实有效。这样做的一个好处是,您可以使用与 UI 相关的属性来装饰您的 UI 层枚举,这些属性在域层中根本没有意义。

    【讨论】:

      【解决方案2】:

      你需要在你的控制器和服务之间提供一些共同的东西..无论是你当前使用的MessageType枚举还是其他东西..也许你想在那里传递一个string,但是我不会推荐它。就我个人而言,我也不希望让控制器直接访问任何域实体(我使用视图模型代替),但对于枚举,我例外。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-04
        • 2015-06-02
        相关资源
        最近更新 更多