2012-01-30 3 views
2

Как организовать модели в нескольких областях? Я пытаюсь организовать код, используя области. Я использую visual studio 2010 express, проект находится на asp.net mvc3 и используется кодовая разработка. Все учебники и ссылки на Интернет говорят только о контроллерах и маршрутах, но как насчет моделей? точнее, я ищу предложения вокруг:Модели в asp.net mvc 3 области

  1. Модель папки в области будет содержать свои собственные классы, поэтому где если DbContext быть размещены? У меня уже есть класс dbcontext , содержащий несколько записей dbset в папке модели «root». Может ли иметь несколько dbcontext, сохраняющих свои данные в одной базе данных?
  2. Я прошел через проект asp.net mvc portable area mvccontrib, но его все еще в asp.net mvc2, но это единственный способ: для создания плагинов/компонентов в asp.net mvc 3?
  3. Помимо областей/переносных зон, есть ли лучший способ организовать код такой, что новые функции могут быть просто «заброшены», , не внося слишком больших изменений в существующий код? Области выглядят перспективных, но я не могу понять, как модели должны быть размещены.
  4. Области, пригодные только для управления контроллером и просмотра?

ответ

0
  1. DbContext будет находиться в слое доступа к данным или папки доступа к данным, где вы будете управлять всеми своими файлами доступа к данным. Вы будете ссылаться на эти классы в своих моделях везде, где вы хотите их использовать. Да! Вы можете иметь несколько dbcontext, сохраняющих свои данные в одном и том же db.

  2. Идея.

  3. Лучший способ, которым я или моя команда состоит в том, чтобы поддерживать виды/модели/контроллеры полностью отдельными. Таким образом, если один человек посвящен представлениям или как их показать, другие могут написать действия контроллера для него.

  4. Мы не используем области, потому что, когда ваше приложение имеет тенденцию масштабироваться экспоненциально, вы можете потерять то, что есть где? My mantra: 4 папки: View/Model/ViewModel/Controller.

Любой другой человек может иметь различный вид ...

+0

«У вас может быть несколько dbcontext, сохраняющих свои данные в одном и том же db», как ?? Является ли это явным предоставлением строки dataconnection для каждого класса dbcontext, используя их конструктор? не будет ли это противоречить метаданным edm? –

0

Я искал возможные пути для достижения разделения уровней модели DbContext, до сих пор, что я нашел то, что есть нет прямого пути, чтобы иметь несколько данных dbcontext для хранения данных в одной базе данных с помощью Code-First. Это возможно только с дизайном Model-First. С помощью кодовых первых нескольких dbinitializers не работает, поскольку все пытаются инициализировать базу данных, и только первая будет успешной. Тем не менее, может возникнуть некоторый путь путем динамического создания базы данных с использованием DbModelBuilder, как это сделано в orchard CMS и некоторых других проектах с открытым исходным кодом. Кто-нибудь попробовал? Поделись, пожалуйста ...

0
  1. Участки подходят только для просмотра модели.

Код регистрации области - это хороший намек на то, какие области используются для разделения маршрутов и доступа к конкретным контроллерам. (Подумайте, логические единицы пользовательского интерфейса). Для организации вашего кода пространства имен являются инструментом выбора.

Возможно, посмотрите на что-то вроде Umbraco, Orchard или даже N2CMS, чтобы увидеть, как они управляют расширениями.

Смежные вопросы