Где должны перечисляться в структуре проекта MVC?

Я использую метод .NET MVC 3 Code-First. У моего домена есть объект с именем Question, этот объект имеет свойство Score, которое Byte, и я хочу заменить это свойство на Enum и назовите это Enum на Score, где я могу установить значения от 0 до 10.

Где должна быть Enums в этой структуре? В папке с именем Enums в моей модели папке?

Update:

Что моя структура проекта в папке Модели:

enter image description here

Ответ 1

Похоже, у вас есть объект value. Я бы поставил его в том же месте, где вы поместили другие объекты ценности в свой домен, что действительно зависит от структуры вашей папки. Определенно в папке "Модель", но если вы разделяете папку модели, это зависит от того, как вы это делаете. У вас есть подпапка Q & A? Может быть, он идет рядом с вопросами. Или у вас есть подпапка Value Objects? Может быть, там.

Ответ 2

То, что вас действительно беспокоит, - это пространство имен ваших перечислений.

Независимо от того, где ваш файл класса существует в решении, ваш код будет опираться на пространства имен. Я думаю, что вам, вероятно, понадобится пространство имен, например: Questiona2011.Enums. Не будет хорошей привязки классов Enum к пространству имен Models - не то, что это невозможно сделать, но иногда представлениям может потребоваться взаимодействие с вашими перечислениями. Поэтому я склонен давать свои перечисления отдельное пространство имен.

Вам не обязательно создавать папку для файла класса... вы можете зайти в корневой каталог, если хотите - реальным фактором является пространство имен.

Итак, создайте класс с таким пространством имен:

using System;

namespace Questiona2011.Enums
{
    public enum Score
    {
        One = 1,
        Two = 2,
        .
        .
        .
        Ten = 10
    }
}

Сказав это, я просто отброшу файл класса в папке "Модели".:)

Ответ 3

Если нет лучшего места для их размещения, я помещаю их в папку Model.

Если у вас много Enums, вы можете захотеть сделать идею папки, которую вы делаете. Я не думаю, что буду называть это "перечислениями", хотя это не очень описательно.

Ответ 4

Если ваш проект становится достаточно большим, чтобы быть обеспокоенным организацией, вам следует подумать о создании нового проекта, который представляет собой просто DLL для типов ваших приложений.