Где должны перечисляться в структуре проекта 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 для типов ваших приложений.