EF Model First или Code First Approach?

Я знаю, что этот вопрос задавали много раз раньше, так как я прочитал довольно много сообщений по этой теме о плюсах и минусах и т.д., но я все еще не могу решить, какой подход правильный для меня. Я новичок в веб-программировании и имею опыт работы с администратором базы данных SQL / написанием отчетов. Я решил попробовать создать свой собственный веб-сайт, на котором в будущем может появиться 30-40 таблиц, а может и больше.

Я рассмотрел оба подхода и предпочитаю подход Entity Model только потому, что мне нравится простота конструктора. и мне нравится видеть перед собой всю модель, он показывает общую картину на одном снимке. Кроме того, я не являюсь сильным программистом, меня впечатлило то, как он генерирует POCO с использованием шаблона генератора DbContext и выполняет всю связь между классами.

Однако, хотя мне нравится подход Model First, я чувствую, что есть некоторая привлекательность спины, я не уверен, являются ли они реальными недостатками, или я просто недостаточно знаю о подходе, основанном на модели и коде, поскольку я все еще новичок в этом.

Причины, по которым я не решаюсь использовать подход Model First:

- В основном потому, что я изо всех сил пытаюсь найти учебные пособия по подходу Model first с использованием MVC 3. Лучшее руководство, которое я нашел с использованием DbContext, написано Джули Лерман, но она не охватывает классы друзей, которые важны для использования аннотаций к данным и внесения других изменений, которые не теряются при повторном создании POCO. Большинство руководств, связанных с MVC 3, похоже, используют подход «сначала код». Большинство людей говорят, что это связано с тем, что преподаватель не хочет сосредотачиваться на EF, а скорее показывает больше MVC на заднем плане. Я лично думаю, что это потому, что Microsoft отстаивает методологию Code First над остальными :)

-Если создание дополнительных классов является хорошей практикой, почему я не могу найти много руководств, показывающих это для MVC 3? Классы друзей - это еще одно название моделей представления? И почему я не могу найти какие-либо учебные пособия от Microsoft, показывающие эти модели друзей / представлений, используемые с MVC 3?

- Я пытался установить базовое отношение 1 к 1 между двумя таблицами. В модели сначала вы должны установить ключи идентификации каждой таблицы в одно и то же поле, а не использовать FK в одной из таблиц, что может немного запутать, когда у вас есть 3 или более таблиц, связанных друг с другом отношениями 1 к 1. . В коде сначала можно решить эту проблему с помощью построителя моделей и настроить его вручную. Я думаю, что в MF вы можете изменить отношения, перейдя в XML, что мне совсем не нравится.

-Больше поддержки / помощи по проблемам с первым кодом

Причины, по которым я не решаюсь использовать подход Code First являются:

-Я начинающий программист.

-Я вижу, что становится довольно сложно отслеживать таблицы и взаимосвязи по мере расширения проекта.

-Там нет диаграммы модели, и я должен сказать, что мне действительно нравится эта идея.

-связь сущностей с базы данных через классы конфигурации я считаю невозможным :).

-Обновление таблицы потребует изменения кода и БД. В модели сначала только одно изменение модели, которое автоматически обновит базу данных и код, сказав, что если вы используете классы друзей, вам, возможно, придется обновить и их.

Также теперь я вижу, что люди в некоторой степени комбинируют подходы Code First и Database first, в том смысле, что вы не позволяете Code First генерировать вашу базу данных, а вручную создаете базу данных и используете API Code First для EF для доступа к ней.

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

Большое спасибо dave

41
задан abatishchev 9 July 2012 в 13:45
поделиться