2014-01-22 3 views
0

Я работаю в MVC с последнего года. Я следую MVC-подходу, просто простую оценку, а не шаблоны репозитория. Теперь я узнаю о преимуществах использования репозитория с инъекцией зависимостей, и я считаю, что это правильно следует. Это мое мышление. В одном из моего образца тестового проекта/я начал работать с и инструментом для репозиции есть несколько вопросов о нем :::Правильный подход к следующему MVC

1), когда мы используем EDMX, предположим, что у меня есть имена таблиц «Пользователи», это automattically создает класс названный как «пользователи», который содержит все поля в качестве свойств. Я обычно создаю слой модели и добавляю класс на этом уровне модели с именем «myUsers», который будет содержать те же свойства, что и у пользователей класса. Теперь я привяжу страницу к «myUsers», поэтому что он не может напрямую связываться с DAL.

И всякий раз, когда я отправляю что-то с моей страницы просмотра, объект поставляется в модели «MyUsers», и здесь я снова делаю что-то вроде этого. Пользователи = MyUsers (я делаю это, делая это для каждого свойства, как :: Users.Name = MyUsers.Name , а затем я сохранить его в базе данных.

Я использую выше подхода и в моих приложениях я использовал выше подхода. Теперь мой вопрос Могу ли я связать мою страницу просмотра непосредственно с классом «Пользователи»? Как я вижу некоторые приложения, это происходит. он сократил много работы, а также накладные расходы в применении.

Что правильно подход? иметь дело непосредственно с DAL или должны быть модели между ними?

ответ

1

«Правильный подход» субъективен. Нам нравится создавать ViewModels, которые существуют исключительно для отображения объектов домена в представлении, потому что это означает, что мы можем отделить логику представления от домена. Мы не всегда можем показывать/загружать каждое свойство объекта домена. В качестве другого примера мы поместили атрибуты DataAnnotation для проверки на наших моделях ViewModels .. но мы оставляем объекты домена как приятные небольшие POCO.

Вручную сопоставление их, как и вы, является невероятной тратой времени. Есть рамки, которые делают это для вас .. такие как:

+0

Сэра, это означает создание вида модели, которая действует как индивидуальный слой лучше и присваивать значение класса домена, можно использовать вышеуказанные рамки, предложенные вами. Сэр? – Sweetie

+0

Правильно ........ –

+1

Помните, что здесь нет правильного или неправильного ответа. Для каждого проекта это отличается. –

0

По мне, это правильная архитектура.

Позвольте мне объяснить ответ в комментариях ниже.

enter image description here

+0

Это действительно хороший вопрос. Я также сталкивался с такими же проблемами, когда был знаком с MVC. Подход, который вы считаете неправильным. Вы не можете напрямую написать эту модель в представлении, которую вы используете для хранения в базе данных. Вы правы, хотя ваш код будет работать должным образом, но с точки зрения злоумышленников вы получили прямой доступ к своей базе данных. –

+0

Что? «Прямой доступ к вашей базе данных» ... смешно. –

+0

Слова, которые я использовал, совершенно неверны. Я имел в виду прямой доступ как «нарушение в коде» (но не напрямую) –

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