枚举应该放在MVC项目结构中的哪个位置?

Aca*_*uza 11 .net asp.net-mvc enums domain-driven-design entity-framework

我正在使用.NET MVC 3 Code-First方法.我的域名有一个实体Question,这个实体有一个Score属性,Byte我希望将该属性替换为a,Enum并将其命名EnumScore可以将值设置为0到10的位置.

Enums应该在哪里居住?在我的Model文件夹中名为Enums的文件夹中?

更新:

那是我的项目Structure in Models文件夹:

在此输入图像描述

cyr*_*llo 7

你真正需要关注的是你的枚举的命名空间.

无论解决方案中存在类文件的位置,您的代码都将依赖于命名空间.我想你可能想要一个命名空间:Questiona2011.Enums.将Enum类绑定到Models命名空间并不是一个好主意- 不是说它不能完成,但有时视图可能需要与您的枚举进行交互.所以我倾向于给我的枚举一个单独的命名空间.

您不一定需要为类文件创建一个文件夹...如果您愿意,可以保留在根目录中 - 真正的因素是命名空间.

所以用这样的命名空间创建一个类:

using System;

namespace Questiona2011.Enums
{
    public enum Score
    {
        One = 1,
        Two = 2,
        .
        .
        .
        Ten = 10
    }
}
Run Code Online (Sandbox Code Playgroud)

话虽如此,我只是将类文件放在Models文件夹中.:)


Dom*_*nic 4

听起来你有一个值对象。我会将它放在域中放置其他值对象的同一位置,这实际上取决于您的文件夹结构。绝对在模型文件夹中,但如果您要细分模型文件夹,则取决于您的操作方式。您有“问答”子文件夹吗?也许它就在问题旁边。或者您有 Value Objects 子文件夹吗?也许在那里。